lua/ldebug.c File Reference

#include <stdlib.h>
#include <string.h>
#include "lua.h"
#include "lapi.h"
#include "lcode.h"
#include "ldebug.h"
#include "ldo.h"
#include "lfunc.h"
#include "lobject.h"
#include "lopcodes.h"
#include "lstate.h"
#include "lstring.h"
#include "ltable.h"
#include "ltm.h"
#include "lvm.h"

Go to the source code of this file.

Defines

#define ldebug_c
#define isLua(ci)   (!((ci)->state & CI_C))
#define check(x)   if (!(x)) return 0;
#define checkjump(pt, pc)   check(0 <= pc && pc < pt->sizecode)
#define checkreg(pt, reg)   check((reg) < (pt)->maxstacksize)

Functions

static const char * getfuncname (CallInfo *ci, const char **name)
static int currentpc (CallInfo *ci)
static int currentline (CallInfo *ci)
void luaG_inithooks (lua_State *L)
LUA_API int lua_sethook (lua_State *L, lua_Hook func, int mask, int count)
LUA_API lua_Hook lua_gethook (lua_State *L)
LUA_API int lua_gethookmask (lua_State *L)
LUA_API int lua_gethookcount (lua_State *L)
LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar)
static Protogetluaproto (CallInfo *ci)
LUA_API const char * lua_getlocal (lua_State *L, const lua_Debug *ar, int n)
LUA_API const char * lua_setlocal (lua_State *L, const lua_Debug *ar, int n)
static void funcinfo (lua_Debug *ar, StkId func)
static const char * travglobals (lua_State *L, const TObject *o)
static void info_tailcall (lua_State *L, lua_Debug *ar)
static int auxgetinfo (lua_State *L, const char *what, lua_Debug *ar, StkId f, CallInfo *ci)
LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar)
static int precheck (const Proto *pt)
static int checkopenop (const Proto *pt, int pc)
static int checkRK (const Proto *pt, int r)
static Instruction luaG_symbexec (const Proto *pt, int lastpc, int reg)
int luaG_checkcode (const Proto *pt)
static const char * kname (Proto *p, int c)
static const char * getobjname (CallInfo *ci, int stackpos, const char **name)
static int isinstack (CallInfo *ci, const TObject *o)
void luaG_typeerror (lua_State *L, const TObject *o, const char *op)
void luaG_concaterror (lua_State *L, StkId p1, StkId p2)
void luaG_aritherror (lua_State *L, const TObject *p1, const TObject *p2)
int luaG_ordererror (lua_State *L, const TObject *p1, const TObject *p2)
static void addinfo (lua_State *L, const char *msg)
void luaG_errormsg (lua_State *L)
void luaG_runerror (lua_State *L, const char *fmt,...)


Define Documentation

#define check (  )     if (!(x)) return 0;

Definition at line 287 of file ldebug.c.

Referenced by assignment(), body(), checkopenop(), constructor(), forbody(), forlist(), fornum(), luaG_symbexec(), luaY_index(), precheck(), recfield(), test_then_block(), and whilestat().

#define checkjump ( pt,
pc   )     check(0 <= pc && pc < pt->sizecode)

Definition at line 289 of file ldebug.c.

#define checkreg ( pt,
reg   )     check((reg) < (pt)->maxstacksize)

Definition at line 291 of file ldebug.c.

Referenced by luaG_symbexec().

#define isLua ( ci   )     (!((ci)->state & CI_C))

Definition at line 35 of file ldebug.c.

Referenced by addinfo(), currentpc(), getfuncname(), getluaproto(), and getobjname().

#define ldebug_c

Definition at line 11 of file ldebug.c.


Function Documentation

static void addinfo ( lua_State L,
const char *  msg 
) [static]

Definition at line 601 of file ldebug.c.

References lua_State::ci, currentline(), getluaproto(), getstr, isLua, luaO_chunkid(), and luaO_pushfstring().

Referenced by luaG_runerror().

static int auxgetinfo ( lua_State L,
const char *  what,
lua_Debug *  ar,
StkId  f,
CallInfo ci 
) [static]

Definition at line 216 of file ldebug.c.

References clvalue, currentline(), funcinfo(), getfuncname(), setobj2s, lua_State::top, and travglobals().

Referenced by lua_getinfo().

static int checkopenop ( const Proto pt,
int  pc 
) [static]

Definition at line 306 of file ldebug.c.

References check, Proto::code, GET_OPCODE, GETARG_B, OP_CALL, OP_RETURN, OP_SETLISTO, and OP_TAILCALL.

Referenced by luaG_symbexec().

static int checkRK ( const Proto pt,
int  r 
) [static]

Definition at line 323 of file ldebug.c.

References MAXSTACK.

Referenced by luaG_symbexec().

static int currentline ( CallInfo ci  )  [static]

Definition at line 49 of file ldebug.c.

References ci_func, currentpc(), and getline.

Referenced by addinfo(), and auxgetinfo().

static int currentpc ( CallInfo ci  )  [static]

Definition at line 38 of file ldebug.c.

References ci_func, CI_HASFRAME, isLua, CallInfo::l, pcRel, CallInfo::state, and CallInfo::u.

Referenced by currentline(), getfuncname(), getobjname(), lua_getlocal(), lua_setlocal(), and luaG_inithooks().

static void funcinfo ( lua_Debug *  ar,
StkId  func 
) [static]

Definition at line 170 of file ldebug.c.

References Closure::c, clvalue, CCallS::func, getstr, CClosure::isC, Closure::l, Proto::lineDefined, luaO_chunkid(), LClosure::p, and Proto::source.

Referenced by auxgetinfo().

static const char * getfuncname ( CallInfo ci,
const char **  name 
) [static]

Definition at line 534 of file ldebug.c.

References ci_func, currentpc(), GET_OPCODE, GETARG_A, getobjname(), isLua, CallInfo::l, OP_CALL, OP_TAILCALL, and CallInfo::u.

Referenced by auxgetinfo().

static Proto* getluaproto ( CallInfo ci  )  [static]

Definition at line 124 of file ldebug.c.

References ci_func, and isLua.

Referenced by addinfo(), lua_getlocal(), and lua_setlocal().

static const char* getobjname ( CallInfo ci,
int  stackpos,
const char **  name 
) [static]

Definition at line 484 of file ldebug.c.

References ci_func, currentpc(), GET_OPCODE, GETARG_A, GETARG_B, GETARG_Bx, GETARG_C, isLua, Proto::k, kname(), lua_assert, luaF_getlocalname(), luaG_symbexec(), OP_GETGLOBAL, OP_GETTABLE, OP_MOVE, OP_SELF, svalue, and ttisstring.

Referenced by getfuncname(), and luaG_typeerror().

static void info_tailcall ( lua_State L,
lua_Debug *  ar 
) [static]

Definition at line 203 of file ldebug.c.

References luaO_chunkid(), setnilvalue, and lua_State::top.

Referenced by lua_getinfo().

static int isinstack ( CallInfo ci,
const TObject o 
) [static]

Definition at line 550 of file ldebug.c.

References CallInfo::base.

Referenced by luaG_typeerror().

static const char* kname ( Proto p,
int  c 
) [static]

Definition at line 472 of file ldebug.c.

References Proto::k, MAXSTACK, svalue, and ttisstring.

Referenced by getobjname().

LUA_API lua_Hook lua_gethook ( lua_State L  ) 

Definition at line 85 of file ldebug.c.

References lua_State::hook.

LUA_API int lua_gethookcount ( lua_State L  ) 

Definition at line 95 of file ldebug.c.

References lua_State::basehookcount.

LUA_API int lua_gethookmask ( lua_State L  ) 

Definition at line 90 of file ldebug.c.

References lua_State::hookmask.

LUA_API int lua_getinfo ( lua_State L,
const char *  what,
lua_Debug *  ar 
)

Definition at line 258 of file ldebug.c.

References auxgetinfo(), CallInfo::base, lua_State::base_ci, incr_top, info_tailcall(), lua_assert, lua_lock, lua_unlock, luaG_runerror(), lua_State::top, and ttisfunction.

LUA_API const char* lua_getlocal ( lua_State L,
const lua_Debug *  ar,
int  n 
)

Definition at line 131 of file ldebug.c.

References CallInfo::base, lua_State::base_ci, currentpc(), getluaproto(), lua_lock, lua_unlock, luaA_pushobject(), and luaF_getlocalname().

LUA_API int lua_getstack ( lua_State L,
int  level,
lua_Debug *  ar 
)

Definition at line 100 of file ldebug.c.

References lua_State::base_ci, lua_State::ci, CI_C, CallInfo::l, lua_lock, lua_unlock, CallInfo::state, and CallInfo::u.

LUA_API int lua_sethook ( lua_State L,
lua_Hook  func,
int  mask,
int  count 
)

Definition at line 71 of file ldebug.c.

References lua_State::basehookcount, cast, lua_State::hook, lua_State::hookinit, lua_State::hookmask, and resethookcount.

LUA_API const char* lua_setlocal ( lua_State L,
const lua_Debug *  ar,
int  n 
)

Definition at line 149 of file ldebug.c.

References CallInfo::base, lua_State::base_ci, currentpc(), getluaproto(), lua_lock, lua_unlock, luaF_getlocalname(), setobjs2s, and lua_State::top.

void luaG_aritherror ( lua_State L,
const TObject p1,
const TObject p2 
)

Definition at line 582 of file ldebug.c.

References luaG_typeerror(), and luaV_tonumber().

Referenced by Arith().

int luaG_checkcode ( const Proto pt  ) 

Definition at line 466 of file ldebug.c.

References luaG_symbexec(), NO_REG, and Proto::sizecode.

Referenced by close_func(), LoadFunction(), and traverseproto().

void luaG_concaterror ( lua_State L,
StkId  p1,
StkId  p2 
)

Definition at line 575 of file ldebug.c.

References lua_assert, luaG_typeerror(), and ttisstring.

Referenced by luaV_concat().

void luaG_errormsg ( lua_State L  ) 

Definition at line 614 of file ldebug.c.

References lua_State::errfunc, incr_top, luaD_call(), luaD_throw(), restorestack, setobjs2s, and ttisfunction.

Referenced by lua_error(), and luaG_runerror().

void luaG_inithooks ( lua_State L  ) 

Definition at line 60 of file ldebug.c.

References lua_State::base_ci, lua_State::ci, currentpc(), and lua_State::hookinit.

Referenced by traceexec().

int luaG_ordererror ( lua_State L,
const TObject p1,
const TObject p2 
)

Definition at line 590 of file ldebug.c.

References luaG_runerror(), luaT_typenames, and ttype.

Referenced by luaV_lessequal(), and luaV_lessthan().

void luaG_runerror ( lua_State L,
const char *  fmt,
  ... 
)

Definition at line 627 of file ldebug.c.

References addinfo(), luaG_errormsg(), and luaO_pushvfstring().

Referenced by Arith(), LoadConstants(), LoadFunction(), LoadHeader(), LoadInt(), LoadSignature(), LoadUpvalues(), lua_getinfo(), lua_yield(), luaD_call(), luaD_growCI(), luaG_ordererror(), luaG_typeerror(), luaH_index(), luaH_set(), luaM_growaux(), luaM_realloc(), luaV_concat(), luaV_gettable(), luaV_settable(), setnodevector(), TestSize(), and unexpectedEOZ().

static Instruction luaG_symbexec ( const Proto pt,
int  lastpc,
int  reg 
) [static]

Definition at line 330 of file ldebug.c.

References check, checkopenop(), checkreg, checkRK(), Proto::code, GET_OPCODE, GETARG_A, GETARG_B, GETARG_Bx, GETARG_C, GETARG_sBx, getOpMode, iABC, iABx, iAsBx, Proto::k, LFIELDS_PER_FLUSH, MAXSTACK, NO_REG, Proto::nups, OP_CALL, OP_CLOSURE, OP_CONCAT, OP_FORLOOP, OP_GETGLOBAL, OP_GETUPVAL, OP_JMP, OP_LOADBOOL, OP_LOADNIL, OP_MOVE, OP_RETURN, OP_SELF, OP_SETGLOBAL, OP_SETLIST, OP_SETUPVAL, OP_TAILCALL, OP_TFORLOOP, OpModeBreg, OpModeBrk, OpModeCrk, OpModeK, OpModesetA, OpModeT, Proto::p, precheck(), Proto::sizecode, testOpMode, and ttisstring.

Referenced by getobjname(), and luaG_checkcode().

void luaG_typeerror ( lua_State L,
const TObject o,
const char *  op 
)

Definition at line 560 of file ldebug.c.

References lua_State::base, lua_State::ci, getobjname(), isinstack(), luaG_runerror(), luaT_typenames, and ttype.

Referenced by luaG_aritherror(), luaG_concaterror(), luaV_getnotable(), luaV_settable(), and tryfuncTM().

static int precheck ( const Proto pt  )  [static]

Definition at line 295 of file ldebug.c.

References check, Proto::code, GET_OPCODE, Proto::is_vararg, lua_assert, MAXSTACK, Proto::maxstacksize, Proto::numparams, OP_RETURN, Proto::sizecode, and Proto::sizelineinfo.

Referenced by luaG_symbexec().

static const char* travglobals ( lua_State L,
const TObject o 
) [static]

Definition at line 189 of file ldebug.c.

References getstr, gkey, gnode, gt, gval, hvalue, luaO_rawequalObj(), sizenode, tsvalue, and ttisstring.

Referenced by auxgetinfo().


Generated on Fri Oct 12 08:44:55 2007 for rpm by  doxygen 1.5.2