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, thensourceis that string. If the function was defined in a file, thensourcestarts with a '@' followed by the file name. -
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, 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,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.) -
nups: the number of upvalues of the function.





网友评论