Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development

debugger crashes

<< < (2/2)

mandrav:

--- Quote from: 280Z28 on January 17, 2006, 04:47:59 am ---I just got a crash, see attached.

--- End quote ---

It would help if you told us what you were doing when it happened...

280Z28:

--- Quote from: mandrav on January 17, 2006, 08:41:52 am ---
--- Quote from: 280Z28 on January 17, 2006, 04:47:59 am ---I just got a crash, see attached.

--- End quote ---

It would help if you told us what you were doing when it happened...

--- End quote ---

I'm actually not sure :(

rickg22:
C:\Program Files\CodeBlocks\codeblocks.exe caused an Access Violation at location 68f4a90e in module C:\Program Files\CodeBlocks\share\codeblocks\plugins\debuggergdb.dll Reading from location 00000000.

It's a null pointer, those are easy to fix! :)
D:/Devel/codeblocks/src/plugins/debuggergdb/debuggerdriver.cpp:85

Perhaps we need to check out for this == NULL? (I don't see any pointers there)

Edit: OUCH!!! This looks just like a stack overflow!


--- Code: ---61850270  C:\Program Files\CodeBlocks\codeblocks.dll:61850270  Manager::ProcessPendingEvents()  D:/Devel/codeblocks/src/sdk/manager.cpp:90
6185577A  C:\Program Files\CodeBlocks\codeblocks.dll:6185577A  MessageManager::Log(int, wchar_t const*, ...)  D:/Devel/codeblocks/src/sdk/messagemanager.cpp:257
68F4E850  C:\Program Files\CodeBlocks\share\codeblocks\plugins\debuggergdb.dll:68F4E850  DebuggerGDB::DebugLog(wxString const&)  D:/Devel/codeblocks/src/plugins/debuggergdb/debuggergdb.cpp:436
68F675AB  C:\Program Files\CodeBlocks\share\codeblocks\plugins\debuggergdb.dll:68F675AB  GDB_driver::ParseOutput(wxString const&)  D:/Devel/codeblocks/src/plugins/debuggergdb/gdb_driver.cpp:213
68F544FB  C:\Program Files\CodeBlocks\share\codeblocks\plugins\debuggergdb.dll:68F544FB  DebuggerGDB::ParseOutput(wxString const&)  D:/Devel/codeblocks/src/plugins/debuggergdb/debuggergdb.cpp:1174
68F560A9  C:\Program Files\CodeBlocks\share\codeblocks\plugins\debuggergdb.dll:68F560A9  DebuggerGDB::OnGDBOutput(wxCommandEvent&)  D:/Devel/codeblocks/src/plugins/debuggergdb/debuggergdb.cpp:1428
100AA0E8  C:\Program Files\CodeBlocks\wxmsw26u_gcc_custom.dll:100AA0E8  _ZN12wxEvtHandler21ProcessEventIfMatchesERK21wxEventTableEntryBasePS_R7wxEvent
100AA4AC  C:\Program Files\CodeBlocks\wxmsw26u_gcc_custom.dll:100AA4AC  _ZN16wxEventHashTable11HandleEventER7wxEventP12wxEvtHandler
100AB489  C:\Program Files\CodeBlocks\wxmsw26u_gcc_custom.dll:100AB489  _ZN12wxEvtHandler12ProcessEventER7wxEvent
100AB2C6  C:\Program Files\CodeBlocks\wxmsw26u_gcc_custom.dll:100AB2C6  _ZN12wxEvtHandler20ProcessPendingEventsEv
10001C94  C:\Program Files\CodeBlocks\wxmsw26u_gcc_custom.dll:10001C94  _ZN12wxAppConsole20ProcessPendingEventsEv
61850270  C:\Program Files\CodeBlocks\codeblocks.dll:61850270  Manager::ProcessPendingEvents()  D:/Devel/codeblocks/src/sdk/manager.cpp:90
6185577A  C:\Program Files\CodeBlocks\codeblocks.dll:6185577A  MessageManager::Log(int, wchar_t const*, ...)  D:/Devel/codeblocks/src/sdk/messagemanager.cpp:257
68F4E850  C:\Program Files\CodeBlocks\share\codeblocks\plugins\debuggergdb.dll:68F4E850  DebuggerGDB::DebugLog(wxString const&)  D:/Devel/codeblocks/src/plugins/debuggergdb/debuggergdb.cpp:436
68F675AB  C:\Program Files\CodeBlocks\share\codeblocks\plugins\debuggergdb.dll:68F675AB  GDB_driver::ParseOutput(wxString const&)  D:/Devel/codeblocks/src/plugins/debuggergdb/gdb_driver.cpp:213
68F544FB  C:\Program Files\CodeBlocks\share\codeblocks\plugins\debuggergdb.dll:68F544FB  DebuggerGDB::ParseOutput(wxString const&)  D:/Devel/codeblocks/src/plugins/debuggergdb/debuggergdb.cpp:1174
68F56177  C:\Program Files\CodeBlocks\share\codeblocks\plugins\debuggergdb.dll:68F56177  DebuggerGDB::OnGDBError(wxCommandEvent&)  D:/Devel/codeblocks/src/plugins/debuggergdb/debuggergdb.cpp:1438

--- End code ---

The bug starts when an event triggers DebuggerGDB::OnGDBError. From there it's all downhill.

Apparently OnGDBError gets called over and over! There must be a reason for this...
(Is the event skipped before logging, or something?)

Well, at least this looks clearer than with wxYield's :P

I think we need to refine the ProcessPendingEvents to limit them to the actual DebugLogs... Yiannis, I may try to fix this tonight, but that means waiting 8 hours until i get out of the office... can you do it? Inside MessageManager, try replacing Manager::ProcessPendingEvents with (insert log here)->GetTextCtrl (or whatever)->ProcessPendingEvents...

We may need to add some "GetControl()" properties to the log classes...

mandrav:

--- Quote ---I think we need to refine the ProcessPendingEvents to limit them to the actual DebugLogs... Yiannis, I may try to fix this tonight, but that means waiting 8 hours until i get out of the office... can you do it? Inside MessageManager, try replacing Manager::ProcessPendingEvents with (insert log here)->GetTextCtrl (or whatever)->ProcessPendingEvents...

We may need to add some "GetControl()" properties to the log classes...
--- End quote ---

I 'll fix this. There is an easier way than exposing the control...

rickg22:
cool, thanks! :)

Navigation

[0] Message Index

[*] Previous page

Go to full version