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. Ifsourcestarts with a '@', it means that the function was defined in a file where the file name follows the '@'. Ifsourcestarts with a '=', the remainder of its contents describe the source in a user-dependent manner. Otherwise, the function was defined in a string wheresourceis 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,currentlineis 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_getinfofunction checks how the function was called to find a suitable name. If it cannot find a name, thennameis set toNULL. -
namewhat: explains thenamefield. The value ofnamewhatcan 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.