|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
-** $Id: lua.h,v 1.150 2002/08/06 17:06:56 roberto Exp roberto $
|
|
|
+** $Id: lua.h,v 1.151 2002/08/06 17:26:45 roberto Exp roberto $
|
|
|
** Lua - An Extensible Extension Language
|
|
|
** Tecgraf: Computer Graphics Technology Group, PUC-Rio, Brazil
|
|
|
** http://www.lua.org mailto:[email protected]
|
|
@@ -282,8 +282,6 @@ LUA_API int lua_pushupvalues (lua_State *L);
|
|
|
|
|
|
#define lua_getref(L,ref) lua_rawgeti(L, LUA_REGISTRYINDEX, ref)
|
|
|
|
|
|
-#endif
|
|
|
-
|
|
|
|
|
|
|
|
|
/*
|
|
@@ -304,6 +302,56 @@ LUA_API int lua_pushupvalues (lua_State *L);
|
|
|
/* }====================================================================== */
|
|
|
|
|
|
|
|
|
+/*
|
|
|
+** {======================================================================
|
|
|
+** Debug API
|
|
|
+** =======================================================================
|
|
|
+*/
|
|
|
+
|
|
|
+typedef enum lua_Hookevent {
|
|
|
+ LUA_HOOKCALL, LUA_HOOKRET, LUA_HOOKLINE, LUA_HOOKCOUNT
|
|
|
+} lua_Hookevent;
|
|
|
+
|
|
|
+
|
|
|
+#define LUA_MASKCALL (2 << LUA_HOOKCALL)
|
|
|
+#define LUA_MASKRET (2 << LUA_HOOKRET)
|
|
|
+#define LUA_MASKLINE (2 << LUA_HOOKLINE)
|
|
|
+#define LUA_MASKCOUNT(count) ((count) << (LUA_HOOKCOUNT+1))
|
|
|
+#define lua_getmaskcount(mask) ((mask) >> (LUA_HOOKCOUNT+1))
|
|
|
+
|
|
|
+typedef struct lua_Debug lua_Debug; /* activation record */
|
|
|
+
|
|
|
+typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar);
|
|
|
+
|
|
|
+
|
|
|
+LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar);
|
|
|
+LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar);
|
|
|
+LUA_API const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int n);
|
|
|
+LUA_API const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int n);
|
|
|
+
|
|
|
+LUA_API int lua_sethook (lua_State *L, lua_Hook func, int mask);
|
|
|
+LUA_API lua_Hook lua_gethook (lua_State *L);
|
|
|
+LUA_API int lua_gethookmask (lua_State *L);
|
|
|
+
|
|
|
+
|
|
|
+#define LUA_IDSIZE 60
|
|
|
+
|
|
|
+struct lua_Debug {
|
|
|
+ lua_Hookevent event;
|
|
|
+ const char *name; /* (n) */
|
|
|
+ const char *namewhat; /* (n) `global', `local', `field', `method' */
|
|
|
+ const char *what; /* (S) `Lua' function, `C' function, Lua `main' */
|
|
|
+ const char *source; /* (S) */
|
|
|
+ int currentline; /* (l) */
|
|
|
+ int nups; /* (u) number of upvalues */
|
|
|
+ int linedefined; /* (S) */
|
|
|
+ char short_src[LUA_IDSIZE]; /* (S) */
|
|
|
+ /* private part */
|
|
|
+ int i_ci; /* active function */
|
|
|
+};
|
|
|
+
|
|
|
+/* }====================================================================== */
|
|
|
+
|
|
|
|
|
|
/******************************************************************************
|
|
|
* Copyright (C) 2002 Tecgraf, PUC-Rio. All rights reserved.
|
|
@@ -328,3 +376,5 @@ LUA_API int lua_pushupvalues (lua_State *L);
|
|
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
******************************************************************************/
|
|
|
|
|
|
+
|
|
|
+#endif
|