1/*
2** $Id: ldebug.h $
3** Auxiliary functions from Debug Interface module
4** See Copyright Notice in lua.h
5*/
6
7#ifndef ldebug_h
8#define ldebug_h
9
10
11#include "lstate.h"
12
13
14#define pcRel(pc, p) (cast_int((pc) - (p)->code) - 1)
15
16
17/* Active Lua function (given call info) */
18#define ci_func(ci) (clLvalue(s2v((ci)->func)))
19
20
21#define resethookcount(L) (L->hookcount = L->basehookcount)
22
23/*
24** mark for entries in 'lineinfo' array that has absolute information in
25** 'abslineinfo' array
26*/
27#define ABSLINEINFO (-0x80)
28
29
30/*
31** MAXimum number of successive Instructions WiTHout ABSolute line
32** information. (A power of two allows fast divisions.)
33*/
34#if !defined(MAXIWTHABS)
35#define MAXIWTHABS 128
36#endif
37
38
39LUAI_FUNC int luaG_getfuncline (const Proto *f, int pc);
40LUAI_FUNC const char *luaG_findlocal (lua_State *L, CallInfo *ci, int n,
41 StkId *pos);
42LUAI_FUNC l_noret luaG_typeerror (lua_State *L, const TValue *o,
43 const char *opname);
44LUAI_FUNC l_noret luaG_callerror (lua_State *L, const TValue *o);
45LUAI_FUNC l_noret luaG_forerror (lua_State *L, const TValue *o,
46 const char *what);
47LUAI_FUNC l_noret luaG_concaterror (lua_State *L, const TValue *p1,
48 const TValue *p2);
49LUAI_FUNC l_noret luaG_opinterror (lua_State *L, const TValue *p1,
50 const TValue *p2,
51 const char *msg);
52LUAI_FUNC l_noret luaG_tointerror (lua_State *L, const TValue *p1,
53 const TValue *p2);
54LUAI_FUNC l_noret luaG_ordererror (lua_State *L, const TValue *p1,
55 const TValue *p2);
56LUAI_FUNC l_noret luaG_runerror (lua_State *L, const char *fmt, ...);
57LUAI_FUNC const char *luaG_addinfo (lua_State *L, const char *msg,
58 TString *src, int line);
59LUAI_FUNC l_noret luaG_errormsg (lua_State *L);
60LUAI_FUNC int luaG_traceexec (lua_State *L, const Instruction *pc);
61
62
63#endif
64