summaryrefslogtreecommitdiffstats
path: root/source/LuaState.cpp
diff options
context:
space:
mode:
authormadmaxoft <github@xoft.cz>2013-08-21 20:06:37 +0200
committermadmaxoft <github@xoft.cz>2013-08-21 20:06:37 +0200
commite0e8e18ab20ee4815424832afe2cba958ec1b2f2 (patch)
tree15881f9f7d23221ea2ca0cedaf591f7e86b4fff9 /source/LuaState.cpp
parentIgnoring all memdump files. (diff)
downloadcuberite-e0e8e18ab20ee4815424832afe2cba958ec1b2f2.tar
cuberite-e0e8e18ab20ee4815424832afe2cba958ec1b2f2.tar.gz
cuberite-e0e8e18ab20ee4815424832afe2cba958ec1b2f2.tar.bz2
cuberite-e0e8e18ab20ee4815424832afe2cba958ec1b2f2.tar.lz
cuberite-e0e8e18ab20ee4815424832afe2cba958ec1b2f2.tar.xz
cuberite-e0e8e18ab20ee4815424832afe2cba958ec1b2f2.tar.zst
cuberite-e0e8e18ab20ee4815424832afe2cba958ec1b2f2.zip
Diffstat (limited to 'source/LuaState.cpp')
-rw-r--r--source/LuaState.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/source/LuaState.cpp b/source/LuaState.cpp
index bbf47fb27..8d2fa8eca 100644
--- a/source/LuaState.cpp
+++ b/source/LuaState.cpp
@@ -884,6 +884,49 @@ bool cLuaState::ReportErrors(lua_State * a_LuaState, int a_Status)
+void cLuaState::LogStackTrace(void)
+{
+ LOGWARNING("Stack trace:");
+ lua_Debug entry;
+ int depth = 0;
+ while (lua_getstack(m_LuaState, depth, &entry))
+ {
+ int status = lua_getinfo(m_LuaState, "Sln", &entry);
+ assert(status);
+
+ LOGWARNING(" %s(%d): %s", entry.short_src, entry.currentline, entry.name ? entry.name : "?");
+ depth++;
+ }
+ LOGWARNING("Stack trace end");
+}
+
+
+
+
+
+AString cLuaState::GetTypeText(int a_StackPos)
+{
+ int Type = lua_type(m_LuaState, a_StackPos);
+ switch (Type)
+ {
+ case LUA_TNONE: return "TNONE";
+ case LUA_TNIL: return "TNIL";
+ case LUA_TBOOLEAN: return "TBOOLEAN";
+ case LUA_TLIGHTUSERDATA: return "TLIGHTUSERDATA";
+ case LUA_TNUMBER: return "TNUMBER";
+ case LUA_TSTRING: return "TSTRING";
+ case LUA_TTABLE: return "TTABLE";
+ case LUA_TFUNCTION: return "TFUNCTION";
+ case LUA_TUSERDATA: return "TUSERDATA";
+ case LUA_TTHREAD: return "TTHREAD";
+ }
+ return Printf("Unknown (%d)", Type);
+}
+
+
+
+
+
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// cLuaState::cRef: