关于Lua调试器开发基本思路是本文要介绍的内容,之前由于在游戏的服务端那要做个Lua远程调试器供任务部使用,现在做个简单的介绍.不妨把调试器的服务端的类叫CLuaDebug吧!
CLuaDebug初始化:
实现回调钩子函数
- static void LuaDebugCallBack(lua_State* L, lua_Debug* ar)
- {
- lua_getinfo( L, "S", ar);
- switch (ar->event)
- {
- case LUA_HOOKRET:
- m_iDeepFunc--;
- break;
- case LUA_HOOKCALL:
- m_iDeepFunc++;
- break;
- case LUA_HOOKLINE:
- string strSource = ar->source + 1;
- ULONG ulLine = ar->currentline;
- //打印变量(全局变量lua_pushvalue(state, LUA_GLOBALSINDEX),堆栈信息(lua_getstack, lua_getinfo(, "nSlf", &d)) , 局部变量(lua_getlocal))
- .... ...
- break;
- defalut:
- break;
- }
- }
设置钩子函数:
- lua_sethook(state, CLuaDebug::LuaDebugCallBack, LUA_MASKLINE|LUA_MASKCALL|LUA_MASKRET, 0);
小结:关于Lua调试器开发基本思路的内容介绍完了,希望通过本文的学习能对你有所帮助!