comparison third_party/luajit/src/lj_debug.h @ 186:8cf4ec5e2191 hg-web

Fixed merge conflict.
author MrJuneJune <me@mrjunejune.com>
date Fri, 23 Jan 2026 22:38:59 -0800
parents 94705b5986b3
children
comparison
equal deleted inserted replaced
176:fed99fc04e12 186:8cf4ec5e2191
1 /*
2 ** Debugging and introspection.
3 ** Copyright (C) 2005-2023 Mike Pall. See Copyright Notice in luajit.h
4 */
5
6 #ifndef _LJ_DEBUG_H
7 #define _LJ_DEBUG_H
8
9 #include "lj_obj.h"
10
11 typedef struct lj_Debug {
12 /* Common fields. Must be in the same order as in lua.h. */
13 int event;
14 const char *name;
15 const char *namewhat;
16 const char *what;
17 const char *source;
18 int currentline;
19 int nups;
20 int linedefined;
21 int lastlinedefined;
22 char short_src[LUA_IDSIZE];
23 int i_ci;
24 /* Extended fields. Only valid if lj_debug_getinfo() is called with ext = 1.*/
25 int nparams;
26 int isvararg;
27 } lj_Debug;
28
29 LJ_FUNC cTValue *lj_debug_frame(lua_State *L, int level, int *size);
30 LJ_FUNC BCLine LJ_FASTCALL lj_debug_line(GCproto *pt, BCPos pc);
31 LJ_FUNC const char *lj_debug_uvname(GCproto *pt, uint32_t idx);
32 LJ_FUNC const char *lj_debug_uvnamev(cTValue *o, uint32_t idx, TValue **tvp,
33 GCobj **op);
34 LJ_FUNC const char *lj_debug_slotname(GCproto *pt, const BCIns *pc,
35 BCReg slot, const char **name);
36 LJ_FUNC const char *lj_debug_funcname(lua_State *L, cTValue *frame,
37 const char **name);
38 LJ_FUNC void lj_debug_shortname(char *out, GCstr *str, BCLine line);
39 LJ_FUNC void lj_debug_addloc(lua_State *L, const char *msg,
40 cTValue *frame, cTValue *nextframe);
41 LJ_FUNC void lj_debug_pushloc(lua_State *L, GCproto *pt, BCPos pc);
42 LJ_FUNC int lj_debug_getinfo(lua_State *L, const char *what, lj_Debug *ar,
43 int ext);
44 #if LJ_HASPROFILE
45 LJ_FUNC void lj_debug_dumpstack(lua_State *L, SBuf *sb, const char *fmt,
46 int depth);
47 #endif
48
49 /* Fixed internal variable names. */
50 #define VARNAMEDEF(_) \
51 _(FOR_IDX, "(for index)") \
52 _(FOR_STOP, "(for limit)") \
53 _(FOR_STEP, "(for step)") \
54 _(FOR_GEN, "(for generator)") \
55 _(FOR_STATE, "(for state)") \
56 _(FOR_CTL, "(for control)")
57
58 enum {
59 VARNAME_END,
60 #define VARNAMEENUM(name, str) VARNAME_##name,
61 VARNAMEDEF(VARNAMEENUM)
62 #undef VARNAMEENUM
63 VARNAME__MAX
64 };
65
66 #endif