2000-01-14 20:15:44 +03:00
|
|
|
/*
|
2018-08-23 20:26:12 +03:00
|
|
|
** $Id: ldebug.h $
|
2000-01-14 20:15:44 +03:00
|
|
|
** Auxiliary functions from Debug Interface module
|
|
|
|
** See Copyright Notice in lua.h
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef ldebug_h
|
|
|
|
#define ldebug_h
|
|
|
|
|
|
|
|
|
2000-06-29 00:21:06 +04:00
|
|
|
#include "lstate.h"
|
2000-01-14 20:15:44 +03:00
|
|
|
|
|
|
|
|
2018-01-28 18:13:26 +03:00
|
|
|
#define pcRel(pc, p) (cast_int((pc) - (p)->code) - 1)
|
2002-04-10 16:11:07 +04:00
|
|
|
|
2020-07-17 17:01:05 +03:00
|
|
|
|
|
|
|
/* Active Lua function (given call info) */
|
2022-10-29 18:06:37 +03:00
|
|
|
#define ci_func(ci) (clLvalue(s2v((ci)->func.p)))
|
2020-07-17 17:01:05 +03:00
|
|
|
|
|
|
|
|
2002-11-18 14:01:55 +03:00
|
|
|
#define resethookcount(L) (L->hookcount = L->basehookcount)
|
2002-07-08 22:21:33 +04:00
|
|
|
|
2017-06-27 14:35:31 +03:00
|
|
|
/*
|
|
|
|
** mark for entries in 'lineinfo' array that has absolute information in
|
|
|
|
** 'abslineinfo' array
|
|
|
|
*/
|
|
|
|
#define ABSLINEINFO (-0x80)
|
2002-07-08 22:21:33 +04:00
|
|
|
|
2021-01-28 20:40:29 +03:00
|
|
|
|
|
|
|
/*
|
|
|
|
** MAXimum number of successive Instructions WiTHout ABSolute line
|
2021-02-02 20:43:55 +03:00
|
|
|
** information. (A power of two allows fast divisions.)
|
2021-01-28 20:40:29 +03:00
|
|
|
*/
|
|
|
|
#if !defined(MAXIWTHABS)
|
2021-02-02 20:43:55 +03:00
|
|
|
#define MAXIWTHABS 128
|
2021-01-28 20:40:29 +03:00
|
|
|
#endif
|
|
|
|
|
|
|
|
|
2018-06-08 22:06:59 +03:00
|
|
|
LUAI_FUNC int luaG_getfuncline (const Proto *f, int pc);
|
2018-11-29 21:02:44 +03:00
|
|
|
LUAI_FUNC const char *luaG_findlocal (lua_State *L, CallInfo *ci, int n,
|
|
|
|
StkId *pos);
|
2011-10-08 00:45:19 +04:00
|
|
|
LUAI_FUNC l_noret luaG_typeerror (lua_State *L, const TValue *o,
|
|
|
|
const char *opname);
|
2020-12-29 19:15:54 +03:00
|
|
|
LUAI_FUNC l_noret luaG_callerror (lua_State *L, const TValue *o);
|
2018-10-30 21:46:56 +03:00
|
|
|
LUAI_FUNC l_noret luaG_forerror (lua_State *L, const TValue *o,
|
|
|
|
const char *what);
|
2013-04-29 20:58:10 +04:00
|
|
|
LUAI_FUNC l_noret luaG_concaterror (lua_State *L, const TValue *p1,
|
|
|
|
const TValue *p2);
|
2014-11-10 17:46:05 +03:00
|
|
|
LUAI_FUNC l_noret luaG_opinterror (lua_State *L, const TValue *p1,
|
|
|
|
const TValue *p2,
|
|
|
|
const char *msg);
|
2013-05-06 21:21:59 +04:00
|
|
|
LUAI_FUNC l_noret luaG_tointerror (lua_State *L, const TValue *p1,
|
|
|
|
const TValue *p2);
|
2011-10-08 00:45:19 +04:00
|
|
|
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, ...);
|
2015-05-22 20:45:56 +03:00
|
|
|
LUAI_FUNC const char *luaG_addinfo (lua_State *L, const char *msg,
|
|
|
|
TString *src, int line);
|
2011-10-08 00:45:19 +04:00
|
|
|
LUAI_FUNC l_noret luaG_errormsg (lua_State *L);
|
2018-05-02 21:17:59 +03:00
|
|
|
LUAI_FUNC int luaG_traceexec (lua_State *L, const Instruction *pc);
|
2023-07-25 22:50:44 +03:00
|
|
|
LUAI_FUNC int luaG_tracecall (lua_State *L);
|
2013-04-25 19:59:42 +04:00
|
|
|
|
2000-01-14 20:15:44 +03:00
|
|
|
|
|
|
|
#endif
|