-static void stackDump (const char *msg, lua_State *L) {
- char buff[2048];
- char *p=buff;
- int i;
- int top = lua_gettop(L);
-// void *ptr;
- fflush(stdout);
- p+=sprintf(p,"STACK(top=%d): ",top);
-/* lua_getglobal(L,"vardump");
- xbt_assert0(lua_isfunction(L,-1), "Vardump not found");
-*/
-
- for (i = 1; i <= top; i++) { /* repeat for each level */
-
- int t = lua_type(L, i);
- switch (t) {
-
- case LUA_TSTRING: /* strings */
- p+=sprintf(p,"`%s'", lua_tostring(L, i));
- break;
-
- case LUA_TBOOLEAN: /* booleans */
- p+=sprintf(p,lua_toboolean(L, i) ? "true" : "false");
- break;
-
- case LUA_TNUMBER: /* numbers */
- p+=sprintf(p,"%g", lua_tonumber(L, i));
- break;
-
- case LUA_TTABLE:
- p+=sprintf(p, "Table");
- break;
-
- default: /* other values */
- p+=sprintf(p, "???");
-/* if ((ptr = luaL_checkudata(L,i,TASK_MODULE_NAME))) {
- p+=sprintf(p,"task");
- } else {
- p+=printf(p,"%s", lua_typename(L, t));
- }*/
- break;
-
- }
- p+=sprintf(p," "); /* put a separator */
- }
- INFO2("%s%s",msg,buff);
-}