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 
39 LUAI_FUNC int luaG_getfuncline (const Proto *f, int pc);
40 LUAI_FUNC const char *luaG_findlocal (lua_State *L, CallInfo *ci, int n,
41                                                     StkId *pos);
42 LUAI_FUNC l_noret luaG_typeerror (lua_State *L, const TValue *o,
43                                                 const char *opname);
44 LUAI_FUNC l_noret luaG_callerror (lua_State *L, const TValue *o);
45 LUAI_FUNC l_noret luaG_forerror (lua_State *L, const TValue *o,
46                                                const char *what);
47 LUAI_FUNC l_noret luaG_concaterror (lua_State *L, const TValue *p1,
48                                                   const TValue *p2);
49 LUAI_FUNC l_noret luaG_opinterror (lua_State *L, const TValue *p1,
50                                                  const TValue *p2,
51                                                  const char *msg);
52 LUAI_FUNC l_noret luaG_tointerror (lua_State *L, const TValue *p1,
53                                                  const TValue *p2);
54 LUAI_FUNC l_noret luaG_ordererror (lua_State *L, const TValue *p1,
55                                                  const TValue *p2);
56 LUAI_FUNC l_noret luaG_runerror (lua_State *L, const char *fmt, ...);
57 LUAI_FUNC const char *luaG_addinfo (lua_State *L, const char *msg,
58                                                   TString *src, int line);
59 LUAI_FUNC l_noret luaG_errormsg (lua_State *L);
60 LUAI_FUNC int luaG_traceexec (lua_State *L, const Instruction *pc);
61 
62 
63 #endif
64