lua_Debug
typedef struct lua_Debug { int event; const char *name; /* (n) */ const char *namewhat; /* (n) */ const char *what; /* (S) */ const char *source; /* (S) */ int currentline; /* (l) */ int linedefined; /* (S) */ int lastlinedefined; /* (S) */ unsigned char nups; /* (u) number of upvalues */ unsigned char nparams; /* (u) number of parameters */ char isvararg; /* (u) */ char istailcall; /* (t) */ char short_src[LUA_IDSIZE]; /* (S) */ /* private part */ other fields } lua_Debug;
A structure used to carry different pieces of information about a function or an activation record. lua_getstack
fills only the private part of this structure, for later use. To fill the other fields of lua_Debug
with useful information, call lua_getinfo
.
The fields of lua_Debug
have the following meaning:
-
source
: the name of the chunk that created the function. Ifsource
starts with a '@
', it means that the function was defined in a file where the file name follows the '@
'. Ifsource
starts with a '=
', the remainder of its contents describe the source in a user-dependent manner. Otherwise, the function was defined in a string wheresource
is that string. -
short_src
: a "printable" version ofsource
, to be used in error messages. -
linedefined
: the line number where the definition of the function starts. -
lastlinedefined
: the line number where the definition of the function ends. -
what
: the string"Lua"
if the function is a Lua function,"C"
if it is a C function,"main"
if it is the main part of a chunk. -
currentline
: the current line where the given function is executing. When no line information is available,currentline
is set to -1. -
name
: a reasonable name for the given function. Because functions in Lua are first-class values, they do not have a fixed name: some functions can be the value of multiple global variables, while others can be stored only in a table field. Thelua_getinfo
function checks how the function was called to find a suitable name. If it cannot find a name, thenname
is set toNULL
. -
namewhat
: explains thename
field. The value ofnamewhat
can be"global"
,"local"
,"method"
,"field"
,"upvalue"
, or""
(the empty string), according to how the function was called. (Lua uses the empty string when no other option seems to apply.) -
istailcall
: true if this function invocation was called by a tail call. In this case, the caller of this level is not in the stack. -
nups
: the number of upvalues of the function. -
nparams
: the number of fixed parameters of the function (always 0 for C functions). -
isvararg
: true if the function is a vararg function (always true for C functions).
Please login to continue.