It seems it doesn't turn off it's message logging when the message manager closes, so it crashed in DebuggerGDB::Log(). It's hard for me to reproduce this bug (I'm guessing it's been there for a long time, but this is the first time I've seen it). This seems to be a solution, but maybe what really needs to be done is have the debugger stop making logging calls after the manager closes? Y'all would know better than me on this.
void DebuggerGDB::Log(const wxString& msg)
{
Manager* manager = Manager::Get();
if (!manager)
return;
MessageManager* msgmanager = manager->GetMessageManager();
if (!msgmanager)
return;
msgmanager->Log(m_PageIndex, msg);
}
void DebuggerGDB::DebugLog(const wxString& msg)
{
// gdb debug messages
if (m_HasDebugLog)
{
Manager* manager = Manager::Get();
if (!manager)
return;
MessageManager* msgmanager = manager->GetMessageManager();
if (!msgmanager)
return;
msgmanager->Log(m_DbgPageIndex, msg);
}
}