[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Hook procedure problem
- From: Chou Eric <ericchou.cpp@...>
- Date: Wed, 15 Feb 2006 09:31:02 +0800
Maybe the scprit which lua_dofile() takes has some run-time error, try to use lua_atpanic() to hook error, deal it with your own error hook function. Then you can get the error message from the stack top and print it.
On 2/14/06, D Burgess <dburgess@gmail.com> wrote:
are you using setjmp/longjmp or try/throw? C or C++?
Db
On 2/14/06, Zulfiqar Malik <zulfiqar.malik@itrango.com> wrote:
>
>
>
> I mailed this scenario a month or so earlier but got no replies. Now the
> problem is haunting me again and I need urgent help.
>
> Coming to the point, I have an in-house debugger integrated in visual studio
> that I use to debug our game scripts. Its an embedded debugger that uses lua
> hooks for debugging purposes (uses LUA_MASKLINE | LUA_MASKCALL |
> LUA_MASKRET). The problem arises when I am in the middle of a debugging
> session (i.e. inside the hook procedure), executing the code step by step,
> when a particular line of lua code calls a C function which in turns calls
> lua_dofile(…) on another script file. In such a scenario, the application
> crashes! The entire call stack that is accessible to me is give in the end.
> I can't seem to figure out the problem. Can someone help me out please? Is
> there something that I am doing wrong or is it a lua bug? Thanks in advance.
>
>
>
> ntdll.dll!7c901230
()
>
> ntdll.dll!7c96c943()
>
> ntdll.dll!7c96cd80()
>
> ntdll.dll!7c96df66()
>
> ntdll.dll!7c94a5d0()
>
> ntdll.dll!7c9268ad()
>
> msvcr71.dll!free(void * pBlock=0x01365f58) Line 103 C
>
> MJ Game.exe!_luaM_realloc() + 0x1d
>
> MJ Game.exe!_luaC_sweep() + 0x11f
>
> MJ
Game.exe!_luaC_sweep() + 0x7d
>
> MJ Game.exe!_luaC_sweep() + 0x188
>
> MJ Game.exe!_luaC_sweep() + 0x28
>
> MJ Game.exe!_luaC_collectgarbage() + 0x16
>
> MJ Game.exe!_luaV_execute() + 0x37c
>
> MJ Game.exe!_luaD_call() + 0x4b
>
> MJ Game.exe!_lua_pcall() + 0x75
>
> MJ Game.exe!_luaD_rawrunprotected() + 0x3a
>
> MJ Game.exe!_luaD_pcall() + 0x41
>
> MJ Game.exe!_lua_pcall() + 0x55
>
> MJ Game.exe!_lua_dofile() + 0x3a
>
> MJ Game.exe!_lua_dofile() + 0x17
>
> MJ Game.exe!cHSExecuteScript(lua_State * L=0x013c8be8) Line 3892 +
> 0x10 C++
>
> MJ Game.exe!_luaD_precall() + 0x160
>
> MJ Game.exe!_luaV_execute() + 0x9fd
>
> MJ Game.exe!_luaD_call() + 0x4b
>
> MJ Game.exe!_lua_pcall() + 0x75
>
> MJ Game.exe!_luaD_rawrunprotected() + 0x3a
>
> MJ Game.exe!_luaD_pcall
() + 0x41
>
> MJ Game.exe!_lua_pcall() + 0x55
>
> MJ Game.exe!_lua_dofile() + 0x3a
>
> MJ Game.exe!_lua_dofile() + 0x17
>
> MJ Game.exe!cHSExecuteScript
(lua_State * L=0x013c8be8) Line 3892 +
> 0x10 C++
>
> MJ Game.exe!_luaD_precall() + 0x160
>
> MJ Game.exe!_luaV_execute() + 0x9fd
>
> MJ Game.exe!_luaD_call
() + 0x4b
>
> MJ Game.exe!_lua_pcall() + 0x75
>
> MJ Game.exe!_luaD_rawrunprotected() + 0x3a
>
> MJ Game.exe!_luaD_pcall() + 0x41
>
> MJ Game.exe!_lua_pcall
() + 0x55
>
> MJ Game.exe!_lua_dofile() + 0x3a
>
> MJ Game.exe!_lua_dofile() + 0x17
>
> MJ Game.exe!cHSExecuteScript(lua_State * L=0x013c8be8) Line 3892 +
> 0x10 C++
>
> MJ Game.exe!_luaD_precall() + 0x160
>
> MJ Game.exe!_luaV_execute() + 0x9fd
>
> MJ Game.exe!_luaD_call() + 0x4b
>
> MJ Game.exe!_lua_pcall
() + 0x75
>
> MJ Game.exe!_luaD_rawrunprotected() + 0x3a
>
> MJ Game.exe!_luaD_pcall() + 0x41
>
> MJ Game.exe!_lua_pcall() + 0x55
>
> MJ Game.exe!_lua_dofile
() + 0x3a
>
> MJ Game.exe!_lua_dofile() + 0x17
>
> MJ Game.exe!cHSExecuteScript(lua_State * L=0x013c8be8) Line 3892 +
> 0x10 C++
>
> > Helios_1_0.dll!_luaD_precall() + 0x160
>
> Helios_1_0.dll!_luaV_execute() + 0x9fd
>
> Helios_1_0.dll!_luaD_call() + 0x4b
>
> Helios_1_0.dll!_lua_pcall() + 0x75
>
> Helios_1_0.dll!_luaD_rawrunprotected() + 0x3a
>
> Helios_1_0.dll!_luaD_pcall() + 0x41
>
> Helios_1_0.dll!_lua_pcall() + 0x55
>
> Helios_1_0.dll!_lua_dofile() + 0x3a
>
> Helios_1_0.dll!_lua_dofile() + 0x17
>
> Helios_1_0.dll!HCScriptManager::ExecFile(const char
> * pszFileName=0x00471f04) Line 76 + 0x10 C++
>
> MJ Game.exe!GameAppCB(HCWnd * poWnd=0x00000000, unsigned int
> uiMsg=1000, int wParam=1244496, int lParam=0) Line 1490 + 0x14 C++
>
> MJ Game.exe!GameLoop() Line 1786 C++
>
> MJ Game.exe!SDL_main(int argc=1, char * * argv=0x0012fee0) Line 639
> C++
>
> MJ Game.exe!_main() + 0xd9 C
>
> MJ Game.exe!_WinMain@16() + 0x1cc C
>
> MJ Game.exe!WinMainCRTStartup() Line 390 + 0x1b C
>
> kernel32.dll!7c816d4f()
>
> ntdll.dll!7c915b4f
()
>
> kernel32.dll!7c8399f3()
>
>
>
> Regards,
>
> Zulfiqar Inayat Malik.
--
Best Regards
Eric
Mailto:
EricChou.Cpp@gmail.com
MSN: storm_joe@hotmail.com