Bug #11141 2007-05-21 19:00

biplab

Fatal Crash while removing tools

A fatal crash can be observed while removing tools from Tools menu. To reproduce the crash do the following,

    * Add a tool using Tools>Configure menu option and click OK. Now the added tool will be available under Tools menu.
    * Delete the newly added tool using Tools>Configure menu option and click OK. Now C::B will crash.


The crash is not observed if:

    * A separator is added & removed.
    * If tool list is not empty.


The backtrace is as follows:
Quote
(gdb) run
Starting program: F:\cbsource\src\devel/codeblocks.exe
---Type <return> to continue, or q <return> to quit---

Program received signal SIGSEGV, Segmentation fault.
0x61a1a0aa in wxListBase::GetCount (this=0xfeeeff22)
    at C:/wxWidgets-2.8.4/include/wx/list.h:517
517         size_t GetCount() const { return m_count; }
(gdb) bt full
#0  0x61a1a0aa in wxListBase::GetCount (this=0xfeeeff22)
    at C:/wxWidgets-2.8.4/include/wx/list.h:517
No locals.
#1  0x61a1a0f0 in wxMenuBase::GetMenuItemCount (this=0xfeeefeee)
    at C:/wxWidgets-2.8.3/include/wx/menu.h:218
No locals.
#2  0x61884319 in MenuItemsManager::Clear (this=0x22ac818)
    at F:/cbsource/src/sdk/menuitemsmanager.cpp:92
        ni = (struct wxMenuItem *) 0x22ac8d0
        menu = (struct wxMenu *) 0xfeeefeee
        subMenu = (struct wxMenu *) 0xfeeefeee
        i = 0
#3  0x619271ef in ToolsManager::BuildToolsMenu (this=0x22ac7d0, menu=0x229ead8)
    at F:/cbsource/src/sdk/toolsmanager.cpp:318
        node = (wxToolsListNode *) 0x23f46c
#4  0x619279fd in ToolsManager::Configure (this=0x22ac7d0)
    at F:/cbsource/src/sdk/toolsmanager.cpp:358
        dlg = {<> = {<No data fields>}, static sm_eventTableEntries = {
    {<wxEventTableEntryBase> = {m_id = 127, m_lastId = -1, m_fn = {__pfn = (
    void ( struct wxObject::*)(struct wxEvent &,)) 204487774, __delta = 0},
        m_callbackUserData = 0x0}, m_eventType = @0x6d2f55e8},
    {<wxEventTableEntryBase> = {m_id = 128, m_lastId = -1, m_fn = {__pfn = (
    void ( struct wxObject::*)(struct wxEvent &,)) 204487802, __delta = 0},
        m_callbackUserData = 0x0}, m_eventType = @0x6d2f55e8},
    {<wxEventTableEntryBase> = {m_id = 637, m_lastId = -1, m_fn = {__pfn = (
    void ( struct wxObject::*)(struct wxEvent &,)) 204487819, __delta = 0},
        m_callbackUserData = 0x0}, m_eventType = @0x6d2f55e8},
    {<wxEventTableEntryBase> = {m_id = 638, m_lastId = -1, m_fn = {__pfn = (
    void ( struct wxObject::*)(struct wxEvent &,)) 204487881, __delta = 0},
        m_callbackUserData = 0x0}, m_eventType = @0x6d2f55e8},
    {<wxEventTableEntryBase> = {m_id = 639, m_lastId = -1, m_fn = {__pfn = (
    void ( struct wxObject::*)(struct wxEvent &,)) 204487937, __delta = 0},
        m_callbackUserData = 0x0}, m_eventType = @0x6d2f55e8},
    {<wxEventTableEntryBase> = {m_id = 640, m_lastId = -1, m_fn = {__pfn = (
    void ( struct wxObject::*)(struct wxEvent &,)) 204487986, __delta = 0},
        m_callbackUserData = 0x0}, m_eventType = @0x6d2f55e8},
    {<wxEventTableEntryBase> = {m_id = -1, m_lastId = -1, m_fn = {__pfn = (
    void ( struct wxObject::*)(struct wxEvent &,)) 204487675, __delta = 0},
        m_callbackUserData = 0x0}, m_eventType = @0x6d2f5438},
    {<wxEventTableEntryBase> = {m_id = 0, m_lastId = 0, m_fn = {__pfn = invalid
pointer to member function
(gdb)

C::B crashes at line 92 of sdk/menuitemsmanager.cpp file where subMenu->GetMenuItemCount() has been called.
Category
Application::Crash
Group
 
Status
Closed
Close date
2007-05-22 09:17
Assigned to
mandrav
mandrav 2007-05-22 09:17

This bug is now fixed in HEAD.

Thank you for reporting it.