Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » MDI crash when closed in debug Collapse All
Subject Author Date
Andrew Cochran Jan 20, 2007 - 5:13 AM

Hi.
I have a problem again. My MDI application crashes when closed. Unhandled exception is received in ExtHook.cpp line 216.

Here is the stack:

    DpdfDesignerd.exe!CArray<CExtHookSink *,CExtHookSink *>::GetSize() Line 279 + 0x11 bytes    C++
>    DpdfDesignerd.exe!CExtHookSink::HookChains_t::HookChainsWindowProc(unsigned int nMessage=130, unsigned int & wParam=0, long & lParam=0) Line 216 + 0xb bytes    C++
    DpdfDesignerd.exe!CExtHookSink::HookChains_t::g_HookWndProc(HWND__ * hWnd=0x00230d00, unsigned int nMessage=130, unsigned int wParam=0, long lParam=0) Line 271 + 0x14 bytes    C++
    user32.dll!_InternalCallWinProc@20() + 0x28 bytes    
    user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes    
    user32.dll!_DispatchClientMessage@20() + 0x4d bytes    
    user32.dll!___fnNCDESTROY@4() + 0x26 bytes    
    ntdll.dll!_KiUserCallbackDispatcher@12() + 0x13 bytes    
    user32.dll!_NtUserDestroyWindow@4() + 0xc bytes    
    DpdfDesignerd.exe!DpdfDesigner::CMainFrame::DestroyWindow() Line 621    C++
    DpdfDesignerd.exe!CFrameWnd::OnClose() Line 849    C++
    DpdfDesignerd.exe!DpdfDesigner::CMainFrame::OnClose() Line 721    C++
    DpdfDesignerd.exe!CWnd::OnWndMsg(unsigned int message=16, unsigned int wParam=0, long lParam=0, long * pResult=0x02a1f040) Line 2028    C++
    DpdfDesignerd.exe!CWnd::WindowProc(unsigned int message=16, unsigned int wParam=0, long lParam=0) Line 1741 + 0x20 bytes    C++
    DpdfDesignerd.exe!AfxCallWndProc(CWnd * pWnd=0x04256b68, HWND__ * hWnd=0x00120cfc, unsigned int nMsg=16, unsigned int wParam=0, long lParam=0) Line 240 + 0x1c bytes    C++
    DpdfDesignerd.exe!AfxWndProc(HWND__ * hWnd=0x00120cfc, unsigned int nMsg=16, unsigned int wParam=0, long lParam=0) Line 389    C++
    user32.dll!_InternalCallWinProc@20() + 0x28 bytes    
    user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes    
    user32.dll!_CallWindowProcAorW@24() + 0x51 bytes    
    user32.dll!_CallWindowProcW@20() + 0x1b bytes    
    DpdfDesignerd.exe!CExtHookSink::HookChains_t::HookChainsWindowProc(unsigned int nMessage=16, unsigned int & wParam=0, long & lParam=0) Line 213 + 0x20 bytes    C++
    DpdfDesignerd.exe!CExtHookSink::HookChains_t::g_HookWndProc(HWND__ * hWnd=0x00120cfc, unsigned int nMessage=16, unsigned int wParam=0, long lParam=0) Line 271 + 0x14 bytes    C++
    user32.dll!_InternalCallWinProc@20() + 0x28 bytes    
    user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes    
    user32.dll!_DispatchClientMessage@20() + 0x4d bytes    
    user32.dll!___fnDWORD@4() + 0x24 bytes    
    ntdll.dll!_KiUserCallbackDispatcher@12() + 0x13 bytes    
    user32.dll!_NtUserMessageCall@28() + 0xc bytes    
    user32.dll!_DefFrameProcWorker@24() + 0x8f bytes    
    user32.dll!_DefFrameProcW@20() + 0x1b bytes    
    DpdfDesignerd.exe!CMDIFrameWnd::DefWindowProcW(unsigned int nMsg=274, unsigned int wParam=61536, long lParam=460024) Line 188    C++
    DpdfDesignerd.exe!CWnd::Default() Line 274    C++
    DpdfDesignerd.exe!CWnd::OnSysCommand(unsigned int __formal=61536, unsigned int __formal=61536) Line 460 + 0xf bytes    C++
    DpdfDesignerd.exe!CFrameWnd::OnSysCommand(unsigned int nID=61536, long lParam=460024) Line 1046    C++
    DpdfDesignerd.exe!CWnd::OnWndMsg(unsigned int message=274, unsigned int wParam=61536, long lParam=460024, long * pResult=0x02a1f664) Line 2056    C++
    DpdfDesignerd.exe!CWnd::WindowProc(unsigned int message=274, unsigned int wParam=61536, long lParam=460024) Line 1741 + 0x20 bytes    C++
    DpdfDesignerd.exe!AfxCallWndProc(CWnd * pWnd=0x04256b68, HWND__ * hWnd=0x00120cfc, unsigned int nMsg=274, unsigned int wParam=61536, long lParam=460024) Line 240 + 0x1c bytes    C++
    DpdfDesignerd.exe!AfxWndProc(HWND__ * hWnd=0x00120cfc, unsigned int nMsg=274, unsigned int wParam=61536, long lParam=460024) Line 389    C++
    user32.dll!_InternalCallWinProc@20() + 0x28 bytes    
    user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes    
    user32.dll!_CallWindowProcAorW@24() + 0x51 bytes    
    user32.dll!_CallWindowProcW@20() + 0x1b bytes    
    DpdfDesignerd.exe!CExtHookSink::HookChains_t::HookChainsWindowProc(unsigned int nMessage=274, unsigned int & wParam=61536, long & lParam=460024) Line 213 + 0x20 bytes    C++
    DpdfDesignerd.exe!CExtHookSink::HookChains_t::g_HookWndProc(HWND__ * hWnd=0x00120cfc, unsigned int nMessage=274, unsigned int wParam=61536, long lParam=460024) Line 271 + 0x14 bytes    C++
    user32.dll!_InternalCallWinProc@20() + 0x28 bytes    
    user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes    
    user32.dll!_DispatchClientMessage@20() + 0x4d bytes    
    user32.dll!___fnDWORD@4() + 0x24 bytes    
    ntdll.dll!_KiUserCallbackDispatcher@12() + 0x13 bytes    
    user32.dll!_NtUserMessageCall@28() + 0xc bytes    
    user32.dll!_DefFrameProcWorker@24() + 0x8f bytes    
    user32.dll!_DefFrameProcW@20() + 0x1b bytes    
    DpdfDesignerd.exe!CMDIFrameWnd::DefWindowProcW(unsigned int nMsg=161, unsigned int wParam=20, long lParam=460024) Line 188    C++
    DpdfDesignerd.exe!CWnd::WindowProc(unsigned int message=161, unsigned int wParam=20, long lParam=460024) Line 1742 + 0x1c bytes    C++
    DpdfDesignerd.exe!AfxCallWndProc(CWnd * pWnd=0x04256b68, HWND__ * hWnd=0x00120cfc, unsigned int nMsg=161, unsigned int wParam=20, long lParam=460024) Line 240 + 0x1c bytes    C++
    DpdfDesignerd.exe!AfxWndProc(HWND__ * hWnd=0x00120cfc, unsigned int nMsg=161, unsigned int wParam=20, long lParam=460024) Line 389    C++
    user32.dll!_InternalCallWinProc@20() + 0x28 bytes    
    user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes    
    user32.dll!_CallWindowProcAorW@24() + 0x51 bytes    
    user32.dll!_CallWindowProcW@20() + 0x1b bytes    
    DpdfDesignerd.exe!CExtHookSink::HookChains_t::HookChainsWindowProc(unsigned int nMessage=161, unsigned int & wParam=20, long & lParam=460024) Line 213 + 0x20 bytes    C++
    DpdfDesignerd.exe!CExtHookSink::HookChains_t::g_HookWndProc(HWND__ * hWnd=0x00120cfc, unsigned int nMessage=161, unsigned int wParam=20, long lParam=460024) Line 271 + 0x14 bytes    C++
    user32.dll!_InternalCallWinProc@20() + 0x28 bytes    
    user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes    
    user32.dll!_DispatchMessageWorker@8() + 0xdc bytes    
    user32.dll!_DispatchMessageW@4() + 0xf bytes    
    DpdfDesignerd.exe!AfxInternalPumpMessage() Line 183    C++
    DpdfDesignerd.exe!CWinThread::PumpMessage() Line 896    C++
    DpdfDesignerd.exe!CWinThread::Run() Line 625 + 0xd bytes    C++
    DpdfDesignerd.exe!CWinApp::Run() Line 894    C++
    DpdfDesignerd.exe!AfxWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, wchar_t * lpCmdLine=0x00020b76, int nCmdShow=1) Line 47 + 0xd bytes    C++
    DpdfDesignerd.exe!wWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, wchar_t * lpCmdLine=0x00020b76, int nCmdShow=1) Line 33    C++
    DpdfDesignerd.exe!__tmainCRTStartup() Line 324 + 0x35 bytes    C
    DpdfDesignerd.exe!wWinMainCRTStartup() Line 196    C
    kernel32.dll!_BaseProcessStart@4() + 0x23 bytes    

It happens only in debug build, besides, not every time. Here is the actions sequence in my application that causes the problem:

1. Run with one opened document
2. Close this document, so there is no one opened
3. Open 6 documents one after another.
4. Close application

I have found similar questions in subject on General Forum and have read answers. That’s why I don’t know exactly whether it is a bug or it is my fault.
Why can it happen?
Please, help to understand & fix.
Thanks in advance.

Technical Support Jan 20, 2007 - 1:11 PM

Would you send us a stripped version of your project that reproduces the problem? Typically CExtHookSink-derived objects are detaching the window procedures correctly when catching the WM_DESTROY messages. Similar problems may occur when using a third party C++ core which also uses a window procedure replacement and the de-initialization sequence is broken.

Andrew Cochran Jan 25, 2007 - 3:19 AM

It’s not so easy to strip project for sending you, but we are trying to prepare it. It may not be soon. :(

During the research according to this crash we noticed that it has appeared after we have upgrated to version 2.62. While version 2.54 - everything was ok! May be this knowledge will help you to find the problem more quickly.


Technical Support Jan 29, 2007 - 1:10 PM

We have just fixed it. Please contact us for the update by e-mail.

Thomas Hsieh Jan 30, 2007 - 11:07 PM

Dear Support:

I got the same crash core stacks when my program exit (SDI with mutiple window tabs). Could you also send me the fixed update to me by e-mail?
thomas@iTravel-Tech.com

Thanks a lot.

Technical Support Jan 31, 2007 - 4:34 AM

We have just emailed you the information about how to download the latest code from our ftp site.