World Editor Crashes (Beta 5 BUG)
by Judy L Tyrer · in Torque 3D Professional · 09/19/2009 (11:22 pm) · 0 replies
I have the camera set to free roam for the game (see http://www.garagegames.com/community/forums/viewthread/101351). When in the world editor, I go into Library/art/shapes/ and then click on a folder (at the moment it is trees, but this happened earlier on another folder). The world editor crashes.
In the debugger I am getting
The callstack is:
[code]
00000000()
> 3Turn_DEBUG.dll!GuiCanvas::processInputEvent(InputEventInfo & inputEvent={...}) Line 374 + 0x23 bytes C++
3Turn_DEBUG.dll!WindowInputGenerator::generateInputEvent(InputEventInfo & inputEvent={...}) Line 72 + 0x16 bytes C++
3Turn_DEBUG.dll!WindowInputGenerator::handleMouseButton(unsigned int did=0, unsigned int modifiers=0, unsigned int action=2, unsigned short button=0) Line 195 C++
3Turn_DEBUG.dll!fastdelegate::FastDelegate4<unsigned int,unsigned int,unsigned int,unsigned short,void>::operator()(unsigned int p1=0, unsigned int p2=0, unsigned int p3=2, unsigned short p4=0) Line 1248 + 0x27 bytes C++
3Turn_DEBUG.dll!Signal<void __cdecl(unsigned int,unsigned int,unsigned int,unsigned short)>::trigger(unsigned int a=0, unsigned int b=0, unsigned int c=2, unsigned short d=0) Line 356 + 0x24 bytes C++
3Turn_DEBUG.dll!Journal::Call<Signal<void __cdecl(unsigned int,unsigned int,unsigned int,unsigned short)>,unsigned int,unsigned int,unsigned int,unsigned short>(Signal<void __cdecl(unsigned int,unsigned int,unsigned int,unsigned short)> * obj=0x02157070, void (unsigned int, unsigned int, unsigned int, unsigned short)* method=0x10574cfc, unsigned int a=0, unsigned int b=0, unsigned int c=2, unsigned short d=0) Line 535 + 0xc1 bytes C++
3Turn_DEBUG.dll!JournaledSignal<void __cdecl(unsigned int,unsigned int,unsigned int,unsigned short)>::trigger(unsigned int a=0, unsigned int b=0, unsigned int c=2, unsigned short d=0) Line 115 + 0x1f bytes C++
3Turn_DEBUG.dll!_dispatch(HWND__ * hWnd=0x001d0f02, unsigned int message=514, unsigned int wParam=0, unsigned int lParam=9175888) Line 291 C++
3Turn_DEBUG.dll!DispatchNext() Line 565 + 0x15 bytes C++
3Turn_DEBUG.dll!Win32WindowManager::_process() Line 283 + 0x5 bytes C++
3Turn_DEBUG.dll!fastdelegate::FastDelegate0<void>::operator()() Line 908 + 0x16 bytes C++
3Turn_DEBUG.dll!Signal<void __cdecl(void)>::trigger() Line 312 + 0x13 bytes C++
3Turn_DEBUG.dll!Process::processEvents() Line 62 C++
3Turn_DEBUG.dll!StandardMainLoop::doMainLoop() Line 517 + 0x5 bytes C++
3Turn_DEBUG.dll!torque_enginetick() Line 78 + 0x5 bytes C++
3Turn_DEBUG.dll!TorqueMain(int argc=2, const char * * argv=0x00c2e518) Line 369 + 0x5 bytes C++
3Turn_DEBUG.dll!torque_winmain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * __formal=0x00000000, char * lpszCmdLine=0x00161f29, HINSTANCE__ * __formal=0x00000000) Line 423 + 0x17 bytes C++
3Turn_DEBUG.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpszCmdLine=0x00161f29, int nCommandShow=1) Line 47 + 0x16 bytes C++
3Turn_DEBUG.exe!__tmainCRTStartup() Line 315 + 0x35 bytes C
3Turn_DEBUG.exe!WinMainCRTStartup() Line 187 C
kernel32.dll!7c816fd7()
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
[/code/
Looking at processInputEvent, mFirstResponder is not NULL, however it is also not a valid object and has no virtual table entry for onInputEvent(). I'm not sure how it got into this state, but it might be a good idea to put a check to ensure that mFirstResponder is a valid Gui Control so the editor doesn't crash.
In the debugger I am getting
Activating DirectInput... Window focus status changed: focus: 1 First-chance exception at 0x00000000 in 3Turn_DEBUG.exe: 0xC0000005: Access violation reading location 0x00000000. Unhandled exception at 0x00000000 in 3Turn_DEBUG.exe: 0xC0000005: Access violation reading location 0x00000000.
The callstack is:
[code]
00000000()
> 3Turn_DEBUG.dll!GuiCanvas::processInputEvent(InputEventInfo & inputEvent={...}) Line 374 + 0x23 bytes C++
3Turn_DEBUG.dll!WindowInputGenerator::generateInputEvent(InputEventInfo & inputEvent={...}) Line 72 + 0x16 bytes C++
3Turn_DEBUG.dll!WindowInputGenerator::handleMouseButton(unsigned int did=0, unsigned int modifiers=0, unsigned int action=2, unsigned short button=0) Line 195 C++
3Turn_DEBUG.dll!fastdelegate::FastDelegate4<unsigned int,unsigned int,unsigned int,unsigned short,void>::operator()(unsigned int p1=0, unsigned int p2=0, unsigned int p3=2, unsigned short p4=0) Line 1248 + 0x27 bytes C++
3Turn_DEBUG.dll!Signal<void __cdecl(unsigned int,unsigned int,unsigned int,unsigned short)>::trigger(unsigned int a=0, unsigned int b=0, unsigned int c=2, unsigned short d=0) Line 356 + 0x24 bytes C++
3Turn_DEBUG.dll!Journal::Call<Signal<void __cdecl(unsigned int,unsigned int,unsigned int,unsigned short)>,unsigned int,unsigned int,unsigned int,unsigned short>(Signal<void __cdecl(unsigned int,unsigned int,unsigned int,unsigned short)> * obj=0x02157070, void (unsigned int, unsigned int, unsigned int, unsigned short)* method=0x10574cfc, unsigned int a=0, unsigned int b=0, unsigned int c=2, unsigned short d=0) Line 535 + 0xc1 bytes C++
3Turn_DEBUG.dll!JournaledSignal<void __cdecl(unsigned int,unsigned int,unsigned int,unsigned short)>::trigger(unsigned int a=0, unsigned int b=0, unsigned int c=2, unsigned short d=0) Line 115 + 0x1f bytes C++
3Turn_DEBUG.dll!_dispatch(HWND__ * hWnd=0x001d0f02, unsigned int message=514, unsigned int wParam=0, unsigned int lParam=9175888) Line 291 C++
3Turn_DEBUG.dll!DispatchNext() Line 565 + 0x15 bytes C++
3Turn_DEBUG.dll!Win32WindowManager::_process() Line 283 + 0x5 bytes C++
3Turn_DEBUG.dll!fastdelegate::FastDelegate0<void>::operator()() Line 908 + 0x16 bytes C++
3Turn_DEBUG.dll!Signal<void __cdecl(void)>::trigger() Line 312 + 0x13 bytes C++
3Turn_DEBUG.dll!Process::processEvents() Line 62 C++
3Turn_DEBUG.dll!StandardMainLoop::doMainLoop() Line 517 + 0x5 bytes C++
3Turn_DEBUG.dll!torque_enginetick() Line 78 + 0x5 bytes C++
3Turn_DEBUG.dll!TorqueMain(int argc=2, const char * * argv=0x00c2e518) Line 369 + 0x5 bytes C++
3Turn_DEBUG.dll!torque_winmain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * __formal=0x00000000, char * lpszCmdLine=0x00161f29, HINSTANCE__ * __formal=0x00000000) Line 423 + 0x17 bytes C++
3Turn_DEBUG.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpszCmdLine=0x00161f29, int nCommandShow=1) Line 47 + 0x16 bytes C++
3Turn_DEBUG.exe!__tmainCRTStartup() Line 315 + 0x35 bytes C
3Turn_DEBUG.exe!WinMainCRTStartup() Line 187 C
kernel32.dll!7c816fd7()
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
[/code/
Looking at processInputEvent, mFirstResponder is not NULL, however it is also not a valid object and has no virtual table entry for onInputEvent(). I'm not sure how it got into this state, but it might be a good idea to put a check to ensure that mFirstResponder is a valid Gui Control so the editor doesn't crash.