Guest User

Untitled

a guest
May 22nd, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. void printLuaStack(lua_State* lua) {
  2.  
  3. pln("========= content of stack from top to bottom: ===========");
  4.  
  5. int stackSize = lua_gettop(lua); // 获得栈中元素个数
  6. for (int i=stackSize; i>0; --i) {
  7. pv("%d [%d]\t", i, -1 - (stackSize - i));
  8. int t = lua_type(lua, i); // 判断当前元素类型
  9. switch (t) {
  10. case LUA_TNUMBER:
  11. pv("%s: \t%.2f\n", lua_typename(lua, t), lua_tonumber(lua, i)); // 打印类型名称和值
  12. break;
  13. case LUA_TBOOLEAN:
  14. pv("%s: \t%d\n", lua_typename(lua, t), lua_toboolean(lua, i));
  15. break;
  16. case LUA_TSTRING:
  17. pv("%s: \t%s\n", lua_typename(lua, t), lua_tostring(lua, i));
  18. break;
  19. default:
  20. // LUA_TTABLE
  21. // LUA_TTHREAD
  22. // LUA_TFUNCTION
  23. // LUA_TLIGHTUSERDATA
  24. // LUA_TUSERDATA
  25. // LUA_TNIL
  26. pv("%s\n", lua_typename(lua, t)); // 不好打印的类型,暂时仅打印类型名称
  27. break;
  28. }
  29. }
  30. psln(stackSize);
  31. }
Add Comment
Please, Sign In to add comment