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 nups; /* (u) number of upvalues */ int linedefined; /* (S) */ int lastlinedefined; /* (S) */ char short_src[LUA_IDSIZE]; /* (S) */ /* private part */ _other fields_ } lua_Debug;
A structure used to carry different pieces of information about an active function. 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
: If the function was defined in a string, then source
is that string. If the function was defined in a file, then source
starts with a '=@=' followed by the file name.
short_src
: a "printable" version of source
, 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, and "tail"
if it was a function that did a tail call. In the latter case, Lua has no other information about the function.
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 may be the value of multiple global variables, while others may be stored only in a table field. The lua_getinfo
function checks how the function was called to find a suitable name. If it cannot find a name, then name
is set to NULL
.
namewhat
: explains the name
field. The value of namewhat
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.)
nups
: the number of upvalues of the function.