View Issue Details

IDProjectCategoryView StatusLast Update
0004502DarkRadiantGUIpublic17.12.2017 16:21
Reportergreebo Assigned Togreebo  
PrioritynormalSeveritycrashReproducibilitysometimes
Status closedResolutionfixed 
PlatformWindowsOS Version10 
Product Version2.2.1 
Target Version2.3.0Fixed in Version2.3.0 
Summary0004502: Rare crash during shutdown when switching GroupDialog tabs
DescriptionIt's somewhat tricky to reproduce, but these steps seem to work:
- Start DR using EmbeddedLayout
- The console should be active after startup
- Do a single click in the application, switching to the AI tab
- Hit the X in the upper right corner to close the app
- DR will crash in the preDestructionCleanup() due to a dangling pointer wxTopLevelWindowMSW::m_winLastFocused
Additional InformationStacktrace

> wxmsw310ud_core_vc140_x64.dll!wxSetFocusToChild(wxWindow * win, wxWindow * * childLastFocused) Line 688 C++
     wxmsw310ud_core_vc140_x64.dll!wxTopLevelWindowMSW::DoRestoreLastFocus() Line 1207 C++
     wxmsw310ud_core_vc140_x64.dll!wxTopLevelWindowMSW::OnActivate(wxActivateEvent & event) Line 1233 C++
     wxbase310ud_vc140_x64.dll!wxAppConsoleBase::HandleEvent(wxEvtHandler * handler, void(wxEvtHandler::*)(wxEvent &) func, wxEvent & event) Line 658 C++
     wxbase310ud_vc140_x64.dll!wxAppConsoleBase::CallEventHandler(wxEvtHandler * handler, wxEventFunctor & functor, wxEvent & event) Line 670 C++
     wxbase310ud_vc140_x64.dll!wxEvtHandler::ProcessEventIfMatchesId(const wxEventTableEntryBase & entry, wxEvtHandler * handler, wxEvent & event) Line 1383 C++
     wxbase310ud_vc140_x64.dll!wxEventHashTable::HandleEvent(wxEvent & event, wxEvtHandler * self) Line 989 C++
     wxbase310ud_vc140_x64.dll!wxEvtHandler::TryHereOnly(wxEvent & event) Line 1578 C++
     wxbase310ud_vc140_x64.dll!wxEvtHandler::TryBeforeAndHere(wxEvent & event) Line 3656 C++
     wxbase310ud_vc140_x64.dll!wxEvtHandler::ProcessEventLocally(wxEvent & event) Line 1511 C++
     wxbase310ud_vc140_x64.dll!wxEvtHandler::ProcessEvent(wxEvent & event) Line 1484 C++
     wxbase310ud_vc140_x64.dll!wxEvtHandler::SafelyProcessEvent(wxEvent & event) Line 1602 C++
     wxmsw310ud_core_vc140_x64.dll!wxWindowBase::HandleWindowEvent(wxEvent & event) Line 1535 C++
     wxmsw310ud_core_vc140_x64.dll!wxWindow::HandleActivate(int state, bool minimized, HWND__ * __formal) Line 3947 C++
     wxmsw310ud_core_vc140_x64.dll!wxWindow::MSWHandleMessage(__int64 * result, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 2785 C++
     wxmsw310ud_core_vc140_x64.dll!wxWindow::MSWWindowProc(unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 3524 C++
     wxmsw310ud_core_vc140_x64.dll!wxTopLevelWindowMSW::MSWWindowProc(unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 321 C++
     wxmsw310ud_core_vc140_x64.dll!wxFrame::MSWWindowProc(unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 897 C++
     wxmsw310ud_core_vc140_x64.dll!wxWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 2667 C++
     user32.dll!00007ff9ec191c24() Unknown
     user32.dll!00007ff9ec191917() Unknown
     user32.dll!00007ff9ec1a2563() Unknown
     ntdll.dll!00007ff9ee739c54() Unknown
     win32u.dll!00007ff9eb851524() Unknown
     user32.dll!00007ff9ec1af3e4() Unknown
     wxmsw310ud_core_vc140_x64.dll!wxTopLevelWindowMSW::~wxTopLevelWindowMSW() Line 521 C++
     wxmsw310ud_core_vc140_x64.dll!wxTopLevelWindow::~wxTopLevelWindow() C++
     wxmsw310ud_core_vc140_x64.dll!wxFrameBase::~wxFrameBase() Line 171 C++
     wxmsw310ud_core_vc140_x64.dll!wxFrame::~wxFrame() Line 168 C++
     uimanager.dll!wxutil::TransientWindow::~TransientWindow() Line 48 C++
     uimanager.dll!ui::GroupDialog::~GroupDialog() C++
     uimanager.dll!ui::GroupDialog::`scalar deleting destructor'(unsigned int) C++
     uimanager.dll!std::_Ref_count<ui::GroupDialog>::_Destroy() Line 153 C++
     uimanager.dll!std::_Ref_count_base::_Decref() Line 113 C++
     uimanager.dll!std::_Ptr_base<ui::GroupDialog>::_Decref() Line 339 C++
     uimanager.dll!std::shared_ptr<ui::GroupDialog>::~shared_ptr<ui::GroupDialog>() Line 567 C++
     uimanager.dll!std::shared_ptr<ui::GroupDialog>::reset() Line 595 C++
     uimanager.dll!ui::GroupDialog::onRadiantShutdown() Line 269 C++
     uimanager.dll!sigc::bound_mem_functor0<void,ui::GroupDialog>::operator()() Line 1787 C++
     uimanager.dll!sigc::adaptor_functor<sigc::bound_mem_functor0<void,ui::GroupDialog> >::operator()() Line 251 C++
     uimanager.dll!sigc::internal::slot_call0<sigc::bound_mem_functor0<void,ui::GroupDialog>,void>::call_it(sigc::internal::slot_rep * rep) Line 104 C++
     DarkRadiant.exe!sigc::internal::signal_emit0<void,sigc::nil>::emit(sigc::internal::signal_impl * impl) Line 772 C++
     DarkRadiant.exe!sigc::signal0<void,sigc::nil>::emit() Line 2667 C++
     DarkRadiant.exe!radiant::RadiantModule::broadcastShutdownEvent() Line 135 C++
     DarkRadiant.exe!ui::MainFrame::preDestructionCleanup() Line 262 C++
     DarkRadiant.exe!ui::MainFrame::onTopLevelFrameClose(wxCloseEvent & ev) Line 284 C++
     DarkRadiant.exe!wxEventFunctorMethod<wxEventTypeTag<wxCloseEvent>,ui::MainFrame,wxCloseEvent,ui::MainFrame>::operator()(wxEvtHandler * handler, wxEvent & event) Line 374 C++
     wxbase310ud_vc140_x64.dll!wxAppConsoleBase::CallEventHandler(wxEvtHandler * handler, wxEventFunctor & functor, wxEvent & event) Line 672 C++
     wxbase310ud_vc140_x64.dll!wxEvtHandler::ProcessEventIfMatchesId(const wxEventTableEntryBase & entry, wxEvtHandler * handler, wxEvent & event) Line 1383 C++
     wxbase310ud_vc140_x64.dll!wxEvtHandler::SearchDynamicEventTable(wxEvent & event) Line 1831 C++
     wxbase310ud_vc140_x64.dll!wxEvtHandler::TryHereOnly(wxEvent & event) Line 1574 C++
     wxbase310ud_vc140_x64.dll!wxEvtHandler::TryBeforeAndHere(wxEvent & event) Line 3656 C++
     wxbase310ud_vc140_x64.dll!wxEvtHandler::ProcessEventLocally(wxEvent & event) Line 1511 C++
     wxbase310ud_vc140_x64.dll!wxEvtHandler::ProcessEvent(wxEvent & event) Line 1484 C++
     wxbase310ud_vc140_x64.dll!wxEvtHandler::SafelyProcessEvent(wxEvent & event) Line 1602 C++
     wxmsw310ud_core_vc140_x64.dll!wxWindowBase::HandleWindowEvent(wxEvent & event) Line 1535 C++
     wxmsw310ud_core_vc140_x64.dll!wxWindowBase::Close(bool force) Line 587 C++
     wxmsw310ud_core_vc140_x64.dll!wxFrame::MSWWindowProc(unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 835 C++
     wxmsw310ud_core_vc140_x64.dll!wxWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 2667 C++
     user32.dll!00007ff9ec191c24() Unknown
     user32.dll!00007ff9ec191917() Unknown
     user32.dll!00007ff9ec1a2563() Unknown
     ntdll.dll!00007ff9ee739c54() Unknown
     win32u.dll!00007ff9eb851184() Unknown
     user32.dll!00007ff9ec18ee4d() Unknown
     user32.dll!00007ff9ec18e982() Unknown
     uxtheme.dll!00007ff9e928c5ea() Unknown
     uxtheme.dll!00007ff9e928c262() Unknown
     uxtheme.dll!00007ff9e9281e15() Unknown
     uxtheme.dll!00007ff9e92806d1() Unknown
     user32.dll!00007ff9ec18eb7d() Unknown
     wxmsw310ud_core_vc140_x64.dll!wxWindow::MSWDefWindowProc(unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 2211 C++
     wxmsw310ud_core_vc140_x64.dll!wxWindow::MSWWindowProc(unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 3530 C++
     wxmsw310ud_core_vc140_x64.dll!wxTopLevelWindowMSW::MSWWindowProc(unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 321 C++
     wxmsw310ud_core_vc140_x64.dll!wxFrame::MSWWindowProc(unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 897 C++
     wxmsw310ud_core_vc140_x64.dll!wxWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 2667 C++
     user32.dll!00007ff9ec191c24() Unknown
     user32.dll!00007ff9ec191917() Unknown
     user32.dll!00007ff9ec1a2563() Unknown
     ntdll.dll!00007ff9ee739c54() Unknown
     win32u.dll!00007ff9eb851184() Unknown
     user32.dll!00007ff9ec18ee4d() Unknown
     user32.dll!00007ff9ec18e982() Unknown
     uxtheme.dll!00007ff9e928c5ea() Unknown
     uxtheme.dll!00007ff9e928c207() Unknown
     uxtheme.dll!00007ff9e9281e15() Unknown
     uxtheme.dll!00007ff9e92806d1() Unknown
     user32.dll!00007ff9ec18eb7d() Unknown
     wxmsw310ud_core_vc140_x64.dll!wxWindow::MSWDefWindowProc(unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 2211 C++
     wxmsw310ud_core_vc140_x64.dll!wxWindow::MSWWindowProc(unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 3530 C++
     wxmsw310ud_core_vc140_x64.dll!wxTopLevelWindowMSW::MSWWindowProc(unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 321 C++
     wxmsw310ud_core_vc140_x64.dll!wxFrame::MSWWindowProc(unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 897 C++
     wxmsw310ud_core_vc140_x64.dll!wxWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 2667 C++
     user32.dll!00007ff9ec191c24() Unknown
     user32.dll!00007ff9ec19156c() Unknown
     wxmsw310ud_core_vc140_x64.dll!wxGUIEventLoop::ProcessMessage(tagMSG * msg) Line 169 C++
     wxmsw310ud_core_vc140_x64.dll!wxGUIEventLoop::Dispatch() Line 229 C++
     wxbase310ud_vc140_x64.dll!wxEventLoopManual::ProcessEvents() Line 228 C++
     wxbase310ud_vc140_x64.dll!wxEventLoopManual::DoRun() Line 273 C++
     wxbase310ud_vc140_x64.dll!wxEventLoopBase::Run() Line 76 C++
     wxbase310ud_vc140_x64.dll!wxAppConsoleBase::MainLoop() Line 380 C++
     wxbase310ud_vc140_x64.dll!wxAppConsoleBase::OnRun() Line 302 C++
     wxmsw310ud_core_vc140_x64.dll!wxAppBase::OnRun() Line 312 C++
     wxbase310ud_vc140_x64.dll!wxEntryReal(int & argc, wchar_t * * argv) Line 503 C++
     wxbase310ud_vc140_x64.dll!wxEntry(int & argc, wchar_t * * argv) Line 181 C++
     wxmsw310ud_core_vc140_x64.dll!wxEntry(HINSTANCE__ * hInstance, HINSTANCE__ * __formal, char * __formal, int nCmdShow) Line 290 C++
     DarkRadiant.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 158 C++
     DarkRadiant.exe!invoke_main() Line 99 C++
     DarkRadiant.exe!__scrt_common_main_seh() Line 253 C++
     DarkRadiant.exe!__scrt_common_main() Line 296 C++
     DarkRadiant.exe!WinMainCRTStartup() Line 17 C++
     kernel32.dll!00007ff9eded8364() Unknown
     ntdll.dll!00007ff9ee6f70d1() Unknown
TagsNo tags attached.

Activities

greebo

greebo

01.04.2017 12:18

administrator   ~0008784

Fixed in 6209bf0ed1f3e2ddff6f7eb150f800efbf533cd5

Issue History

Date Modified Username Field Change
01.04.2017 07:43 greebo New Issue
01.04.2017 07:43 greebo Status new => confirmed
01.04.2017 07:43 greebo Description Updated
01.04.2017 12:16 greebo Assigned To => greebo
01.04.2017 12:16 greebo Status confirmed => assigned
01.04.2017 12:16 greebo Target Version => 2.3.0
01.04.2017 12:18 greebo Note Added: 0008784
01.04.2017 12:18 greebo Status assigned => resolved
01.04.2017 12:18 greebo Fixed in Version => 2.3.0
01.04.2017 12:18 greebo Resolution open => fixed
17.12.2017 16:21 greebo Status resolved => closed