Я пытаюсь отладить приложение C / C ++, которое использует Lua 5.1. На этом этапе было бы очень полезно иметь способ создания удобочитаемого представления данных в стеке Lua при отладке. Я нашел функцию lua_getstack
это похоже на правильные вещи, но я не могу найти способ вызвать его через командную строку LLDB и распечатать как что-то понятное человеку. Есть ли лучший способ сделать это?
Вы можете использовать что-то вроде этого, а затем вызвать его из отладчика:
void lua_stackdump(lua_State *L)
{
int i;
int top = lua_gettop(L);
for (i = 1; i <= top; i++) { /* repeat for each level */
int t = lua_type(L, i);
switch (t) {
case LUA_TSTRING: { /* strings */
printf("’%s’\n", lua_tostring(L, i));
break;
}
case LUA_TBOOLEAN: { /* booleans */
printf(lua_toboolean(L, i) ? "true" : "false");
break;
}
case LUA_TNUMBER: { /* numbers */
printf("%g\n", lua_tonumber(L, i));
break;
}
default: { /* other values */
printf("%s\n", lua_typename(L, t));
break;
}
}
}
printf("\n"); /* end the listing */
}
Других решений пока нет …