|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.luaj.vm2.Varargs
org.luaj.vm2.LuaValue
org.luaj.vm2.LuaFunction
org.luaj.vm2.lib.LibFunction
org.luaj.vm2.lib.TwoArgFunction
org.luaj.vm2.lib.DebugLib
public class DebugLib
Subclass of LibFunction
which implements the lua standard debug
library.
The debug library in luaj tries to emulate the behavior of the corresponding C-based lua library.
To do this, it must maintain a separate stack of calls to LuaClosure
and LibFunction
instances.
Especially when lua-to-java bytecode compiling is being used
via a Globals.Compiler
such as LuaJC
,
this cannot be done in all cases.
Typically, this library is included as part of a call to either
JsePlatform.debugGlobals()
or
JmePlatform.debugGlobals()
Globals globals = JsePlatform.debugGlobals();
System.out.println( globals.get("debug").get("traceback").call() );
To instantiate and use it directly,
link it into your globals table via LuaValue.load(LuaValue)
using code such as:
Globals globals = new Globals();
globals.load(new JseBaseLib());
globals.load(new PackageLib());
globals.load(new DebugLib());
System.out.println( globals.get("debug").get("traceback").call() );
This library exposes the entire state of lua code, and provides method to see and modify all underlying lua values within a Java VM so should not be exposed to client code in a shared server environment.
LibFunction
,
JsePlatform
,
JmePlatform
,
Lua 5.2 Debug Lib ReferenceNested Class Summary | |
---|---|
static class |
DebugLib.CallStack
|
Field Summary | |
---|---|
static boolean |
CALLS
|
static boolean |
TRACE
|
Fields inherited from class org.luaj.vm2.lib.LibFunction |
---|
name, opcode |
Fields inherited from class org.luaj.vm2.LuaFunction |
---|
s_metatable |
Fields inherited from class org.luaj.vm2.LuaValue |
---|
ADD, CONCAT, DIV, EMPTYSTRING, ENV, EQ, FALSE, INDEX, LE, LEN, LT, METATABLE, MINUSONE, MOD, MODE, MUL, NEWINDEX, NIL, NILS, NONE, NOVALS, ONE, POW, SUB, TBOOLEAN, TFUNCTION, TINT, TLIGHTUSERDATA, TNIL, TNONE, TNUMBER, TOSTRING, TRUE, TSTRING, TTABLE, TTHREAD, TUSERDATA, TVALUE, TYPE_NAMES, UNM, ZERO |
Constructor Summary | |
---|---|
DebugLib()
|
Method Summary | |
---|---|
LuaValue |
call(LuaValue modname,
LuaValue env)
Perform one-time initialization on the library by creating a table containing the library functions, adding that table to the supplied environment, adding the table to package.loaded, and returning table as the return value. |
static org.luaj.vm2.lib.DebugLib.NameWhat |
getobjname(Prototype p,
int lastpc,
int reg)
|
void |
onCall(LuaClosure c,
Varargs varargs,
LuaValue[] stack)
|
void |
onCall(LuaFunction f)
|
void |
onInstruction(int pc,
Varargs v,
int top)
|
void |
onReturn()
|
java.lang.String |
traceback(int level)
|
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction |
---|
call, call, call, invoke |
Methods inherited from class org.luaj.vm2.lib.LibFunction |
---|
bind, bind, call, newupe, newupl, newupn, tojstring |
Methods inherited from class org.luaj.vm2.LuaFunction |
---|
checkfunction, classnamestub, getmetatable, isfunction, name, optfunction, strvalue, type, typename |
Methods inherited from class org.luaj.vm2.Varargs |
---|
argcheck, checkboolean, checkclosure, checkdouble, checkfunction, checkint, checkinteger, checkjstring, checklong, checknotnil, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, checkvalue, eval, isfunction, isnil, isnoneornil, isnumber, isstring, istable, isTailcall, isthread, isuserdata, isvalue, optboolean, optclosure, optdouble, optfunction, optint, optinteger, optjstring, optlong, optnumber, optstring, opttable, optthread, optuserdata, optuserdata, optvalue, toboolean, tobyte, tochar, todouble, tofloat, toint, tojstring, tolong, toshort, touserdata, touserdata, type |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static boolean CALLS
public static boolean TRACE
Constructor Detail |
---|
public DebugLib()
Method Detail |
---|
public LuaValue call(LuaValue modname, LuaValue env)
call
in class TwoArgFunction
modname
- the module name supplied if this is loaded via 'require'.env
- the environment to load into, which must be a Globals instance.
(this(arg1,arg2))
, or LuaValue.NIL
if there were none.LuaValue.call()
,
LuaValue.call(LuaValue)
,
LuaValue.call(LuaValue, LuaValue, LuaValue)
,
LuaValue.invoke(LuaValue, Varargs)
,
LuaValue.method(String,LuaValue,LuaValue)
,
LuaValue.method(LuaValue,LuaValue,LuaValue)
public void onCall(LuaFunction f)
public void onCall(LuaClosure c, Varargs varargs, LuaValue[] stack)
public void onInstruction(int pc, Varargs v, int top)
public void onReturn()
public java.lang.String traceback(int level)
public static org.luaj.vm2.lib.DebugLib.NameWhat getobjname(Prototype p, int lastpc, int reg)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |