mirror of
https://github.com/lua/lua
synced 2024-11-22 12:51:30 +03:00
e500892e18
By producing absolute line information at regular intervals, a simple division can compute the correct entry for a given instruction.
64 lines
2.1 KiB
C
64 lines
2.1 KiB
C
/*
|
|
** $Id: ldebug.h $
|
|
** Auxiliary functions from Debug Interface module
|
|
** See Copyright Notice in lua.h
|
|
*/
|
|
|
|
#ifndef ldebug_h
|
|
#define ldebug_h
|
|
|
|
|
|
#include "lstate.h"
|
|
|
|
|
|
#define pcRel(pc, p) (cast_int((pc) - (p)->code) - 1)
|
|
|
|
|
|
/* Active Lua function (given call info) */
|
|
#define ci_func(ci) (clLvalue(s2v((ci)->func)))
|
|
|
|
|
|
#define resethookcount(L) (L->hookcount = L->basehookcount)
|
|
|
|
/*
|
|
** mark for entries in 'lineinfo' array that has absolute information in
|
|
** 'abslineinfo' array
|
|
*/
|
|
#define ABSLINEINFO (-0x80)
|
|
|
|
|
|
/*
|
|
** MAXimum number of successive Instructions WiTHout ABSolute line
|
|
** information. (A power of two allows fast divisions.)
|
|
*/
|
|
#if !defined(MAXIWTHABS)
|
|
#define MAXIWTHABS 128
|
|
#endif
|
|
|
|
|
|
LUAI_FUNC int luaG_getfuncline (const Proto *f, int pc);
|
|
LUAI_FUNC const char *luaG_findlocal (lua_State *L, CallInfo *ci, int n,
|
|
StkId *pos);
|
|
LUAI_FUNC l_noret luaG_typeerror (lua_State *L, const TValue *o,
|
|
const char *opname);
|
|
LUAI_FUNC l_noret luaG_callerror (lua_State *L, const TValue *o);
|
|
LUAI_FUNC l_noret luaG_forerror (lua_State *L, const TValue *o,
|
|
const char *what);
|
|
LUAI_FUNC l_noret luaG_concaterror (lua_State *L, const TValue *p1,
|
|
const TValue *p2);
|
|
LUAI_FUNC l_noret luaG_opinterror (lua_State *L, const TValue *p1,
|
|
const TValue *p2,
|
|
const char *msg);
|
|
LUAI_FUNC l_noret luaG_tointerror (lua_State *L, const TValue *p1,
|
|
const TValue *p2);
|
|
LUAI_FUNC l_noret luaG_ordererror (lua_State *L, const TValue *p1,
|
|
const TValue *p2);
|
|
LUAI_FUNC l_noret luaG_runerror (lua_State *L, const char *fmt, ...);
|
|
LUAI_FUNC const char *luaG_addinfo (lua_State *L, const char *msg,
|
|
TString *src, int line);
|
|
LUAI_FUNC l_noret luaG_errormsg (lua_State *L);
|
|
LUAI_FUNC int luaG_traceexec (lua_State *L, const Instruction *pc);
|
|
|
|
|
|
#endif
|