While redesigning the Manager framework, I encountered the problem that the configuration was no longer being saved. The substantial change to ConfigManger was that it was no longer an automatic object, but managed (and thus freed) by the Manager class. Configurations are saved inside ConfigManger's destructor, so this suggested that ConfigManager was never deleted.
After searching for a while without any result, I stepped through it in the debugger and found that Code::Blocks crashes when EditorManager frees the notebook pages in wxFlatNotebook.cpp, line 296:
bool wxFlatNotebook::DeleteAllPages()
{
if(m_windows.empty())
return false;
Freeze();
std::vector<wxWindow*>::iterator iter = m_windows.begin();
for(; iter != m_windows.end(); iter++)
{
delete (*iter);
}