#17884: Application crash on system restart/shutdown on Windows 7
---------------------+-------------------------------
Reporter: feng1 | Owner:
Type: defect | Status: new
Priority: normal | Milestone:
Component: wxMSW | Version: 3.1.0
Resolution: | Keywords: wxWindowMSW crash
Blocked By: | Blocking:
Patch: 0 |
---------------------+-------------------------------
Comment (by feng1):
The message is WM_ACTIVATEAPP.
The deleted window is the main frame itself (MyFrame : wxFrame).
Call stack:
{{{
> dialogs.exe!wxWndProc(HWND__ * hWnd, unsigned int message,
unsigned __int64 wParam, __int64 lParam) Line 2665 C++
[External Code]
dialogs.exe!wxToolTip::DeleteToolTipCtrl() Line 286 C++
dialogs.exe!wxToolTipModule::OnExit() Line 154 C++
dialogs.exe!wxModule::Exit() Line 41 C++
dialogs.exe!wxModule::DoCleanUpModules(const wxModuleList &
modules) Line 197 C++
dialogs.exe!wxModule::CleanUpModules() Line 57 C++
dialogs.exe!DoCommonPostCleanup() Line 415 C++
dialogs.exe!wxEntryCleanup() Line 459 C++
dialogs.exe!wxApp::OnEndSession(wxCloseEvent & __formal) Line 783
C++
dialogs.exe!wxAppConsoleBase::HandleEvent(wxEvtHandler * handler,
void(wxEvtHandler::*)(wxEvent &) func, wxEvent & event) Line 658 C++
dialogs.exe!wxAppConsoleBase::CallEventHandler(wxEvtHandler *
handler, wxEventFunctor & functor, wxEvent & event) Line 670 C++
dialogs.exe!wxEvtHandler::ProcessEventIfMatchesId(const
wxEventTableEntryBase & entry, wxEvtHandler * handler, wxEvent & event)
Line 1383 C++
dialogs.exe!wxEventHashTable::HandleEvent(wxEvent & event,
wxEvtHandler * self) Line 989 C++
dialogs.exe!wxEvtHandler::TryHereOnly(wxEvent & event) Line 1578
C++
dialogs.exe!wxEvtHandler::TryBeforeAndHere(wxEvent & event) Line
3656 C++
dialogs.exe!wxEvtHandler::ProcessEventLocally(wxEvent & event)
Line 1511 C++
dialogs.exe!wxEvtHandler::ProcessEvent(wxEvent & event) Line 1484
C++
dialogs.exe!wxWindow::HandleEndSession(bool endSession, long
logOff) Line 3880 C++
dialogs.exe!wxWindow::MSWHandleMessage(__int64 * result, unsigned
int message, unsigned __int64 wParam, __int64 lParam) Line 3219 C++
dialogs.exe!wxWindow::MSWWindowProc(unsigned int message, unsigned
__int64 wParam, __int64 lParam) Line 3522 C++
dialogs.exe!wxTopLevelWindowMSW::MSWWindowProc(unsigned int
message, unsigned __int64 wParam, __int64 lParam) Line 321 C++
dialogs.exe!wxFrame::MSWWindowProc(unsigned int message, unsigned
__int64 wParam, __int64 lParam) Line 897 C++
dialogs.exe!wxWndProc(HWND__ * hWnd, unsigned int message,
unsigned __int64 wParam, __int64 lParam) Line 2665 C++
[External Code]
dialogs.exe!wxMessageDialog::ShowModal() Line 559 C++
dialogs.exe!MyFrame::MessageBoxW(wxCommandEvent & __formal) Line
884 C++
dialogs.exe!wxAppConsoleBase::HandleEvent(wxEvtHandler * handler,
void(wxEvtHandler::*)(wxEvent &) func, wxEvent & event) Line 658 C++
dialogs.exe!wxAppConsoleBase::CallEventHandler(wxEvtHandler *
handler, wxEventFunctor & functor, wxEvent & event) Line 670 C++
dialogs.exe!wxEvtHandler::ProcessEventIfMatchesId(const
wxEventTableEntryBase & entry, wxEvtHandler * handler, wxEvent & event)
Line 1383 C++
dialogs.exe!wxEventHashTable::HandleEvent(wxEvent & event,
wxEvtHandler * self) Line 989 C++
dialogs.exe!wxEvtHandler::TryHereOnly(wxEvent & event) Line 1578
C++
dialogs.exe!wxEvtHandler::TryBeforeAndHere(wxEvent & event) Line
3656 C++
dialogs.exe!wxEvtHandler::ProcessEventLocally(wxEvent & event)
Line 1511 C++
dialogs.exe!wxEvtHandler::ProcessEvent(wxEvent & event) Line 1484
C++
dialogs.exe!wxWindowBase::TryAfter(wxEvent & event) Line 3457
C++
dialogs.exe!wxEvtHandler::ProcessEvent(wxEvent & event) Line 1497
C++
dialogs.exe!wxEvtHandler::SafelyProcessEvent(wxEvent & event) Line
1602 C++
dialogs.exe!wxWindowBase::HandleWindowEvent(wxEvent & event) Line
1535 C++
dialogs.exe!wxMenuBase::DoProcessEvent(wxMenuBase * menu, wxEvent
& event, wxWindow * win) Line 673 C++
dialogs.exe!wxMenuBase::SendEvent(int itemid, int checked) Line
643 C++
dialogs.exe!wxFrameBase::ProcessCommand(wxMenuItem * item) Line
295 C++
dialogs.exe!wxFrame::HandleCommand(unsigned short id, unsigned
short cmd, HWND__ * control) Line 799 C++
dialogs.exe!wxFrame::MSWWindowProc(unsigned int message, unsigned
__int64 wParam, __int64 lParam) Line 856 C++
dialogs.exe!wxWndProc(HWND__ * hWnd, unsigned int message,
unsigned __int64 wParam, __int64 lParam) Line 2665 C++
[External Code]
dialogs.exe!wxGUIEventLoop::ProcessMessage(tagMSG * msg) Line 169
C++
dialogs.exe!wxGUIEventLoop::Dispatch() Line 229 C++
dialogs.exe!wxEventLoopManual::ProcessEvents() Line 228 C++
dialogs.exe!wxEventLoopManual::DoRun() Line 273 C++
dialogs.exe!wxEventLoopBase::Run() Line 76 C++
dialogs.exe!wxAppConsoleBase::MainLoop() Line 380 C++
dialogs.exe!wxAppConsoleBase::OnRun() Line 302 C++
dialogs.exe!wxAppBase::OnRun() Line 312 C++
dialogs.exe!wxEntryReal(int & argc, wchar_t * * argv) Line 503
C++
dialogs.exe!wxEntry(int & argc, wchar_t * * argv) Line 181
C++
dialogs.exe!wxEntry(HINSTANCE__ * hInstance, HINSTANCE__ *
__formal, char * __formal, int nCmdShow) Line 290 C++
dialogs.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ *
hPrevInstance, char * __formal, int nCmdShow) Line 129 C++
[External Code]
}}}
Locals:
{{{
Name Value Type
hWnd 0x00000000002e0a1e {unused=-572662307 } HWND__ *
lParam 1676 __int64
message 28 unsigned int
rc 0 __int64
wnd 0x00000000002f3520 {m_hWnd=0xdddddddddddddddd {unused=??? }
m_oldWndProc=0xdddddddddddddddd m_mouseInWindow=...} wxWindow *
wParam 0 unsigned __int64
}}}
Debug output after restart was triggered:
{{{
..\..\src\msw\app.cpp(692): 'UnregisterClass(wxWindowNR)' failed with
error 0x00000584 (class still has open windows.).
Exception thrown: read access violation.
wnd-> was 0xFFFFFFFFFFFFF9D7.
}}}
--
Ticket URL: <
http://trac.wxwidgets.org/ticket/17884#comment:2>