I recently started testing my application using the Application Verifier 4.1.1078. Under Tests I use all the Basics and the Misc Options.
Running these tests I came across a very old problem with the CExtComboBox. I sometimes had crashes while exiting a dialog in which I have changed the content of the cextcombobox.
http://www.prof-uis.com/prof-uis/tech-support/support-forum/crash-on-exit-cextcombobox-67580.aspx#@lt;/div>
I have included the Output from the Visual Studio 2008 plus the calling stack. I am using ProfUIS 2.91 Unicode with dynamic MFC.
Any suggestion?
Thanks Adrian
Warning: no message line prompt for ID 0x2367.
Warning: no message line prompt for ID 0x1F71.
Warning: no message line prompt for ID 0x1F71.
First-chance exception at 0x012f2efc in Easyscan2.exe: 0xC0000005: Access violation reading location 0x19223fa0.
===========================================================
VERIFIER STOP 0000000000000013: pid 0x12FC: first chance access violation for current stack trace
0000000019223FA0 : Invalid address being accessed
00000000012F2EFC : Code performing invalid access
000000000008B4D0 : Exception record. Use .exr to display it.
000000000008AFE0 : Context record. Use .cxr to display it.
===========================================================
This verifier stop is continuable.
After debugging it use `go’ to continue.
===========================================================
=======================================
VERIFIER STOP 00000013: pid 0x12FC: First chance access violation for current stack trace.
19223FA0 : Invalid address causing the exception.
012F2EFC : Code address executing the invalid access.
0018CCB8 : Exception record.
0018CD08 : Context record.
=======================================
This verifier stop is continuable.
After debugging it use `go’ to continue.
=======================================
Easyscan2.exe has triggered a breakpoint
Calling stack
vrfcore.dll!VerifierStopMessageEx(_AVRF_LAYER_DESCRIPTOR * LayerDescriptor=0x6f84c540, unsigned long StopCode=19, unsigned long Param1=421674912, unsigned long Param2=19869436, unsigned long Param3=1625272, unsigned long Param4=1625352, _AVRF_STOP_EXTRA * StopExtra=0x00000000, ...) Line 570 C++
vrfcore.dll!VfCoreRedirectedStopMessage(unsigned long Code=19, char * Message=0x61c11bdc, unsigned long Param1=421674912, char * Description1=0x61c11c14, unsigned long Param2=19869436, char * Description2=0x61c11c34, unsigned long Param3=1625272, char * Description3=0x61c11c54, unsigned long Param4=1625352, char * Description4=0x61c11c80) Line 103 + 0x19 bytes C++
vfbasics.dll!VerifierStopMessage(unsigned long Code=19, char * Message=0x61c11bdc, unsigned long Param1=421674912, char * Description1=0x61c11c14, unsigned long Param2=19869436, char * Description2=0x61c11c34, unsigned long Param3=1625272, char * Description3=0x61c11c54, unsigned long Param4=1625352, char * Description4=0x61c11c80) Line 1309 C
vfbasics.dll!AVrfpCheckFirstChanceException(_EXCEPTION_POINTERS * ExceptionPointers=0x0018cc00) Line 1151 + 0x2b bytes C
vfbasics.dll!AVrfpVectoredExceptionHandler(_EXCEPTION_POINTERS * ExceptionPointers=0x0018cc00) Line 354 C
ntdll.dll!_RtlpCallVectoredHandlers@12() + 0x2f244 bytes
ntdll.dll!_RtlCallVectoredExceptionHandlers@8() + 0x12 bytes
ntdll.dll!_RtlDispatchException@8() + 0x19 bytes
ntdll.dll!_KiUserExceptionDispatcher@8() + 0xf bytes
> Easyscan2.exe!CExtComboBoxPopupListBox::WindowProc(unsigned int message=130, unsigned int wParam=0, long lParam=0) Line 269 + 0x26 bytes C++
Easyscan2.exe!CExtNCSB_Impl<CExtComboBoxPopupListBox>::WindowProc(unsigned int message=130, unsigned int wParam=0, long lParam=0) Line 1181 + 0x14 bytes C++
mfc90ud.dll!AfxCallWndProc(CWnd * pWnd=0x19223f48, HWND__ * hWnd=0x002f11a8, unsigned int nMsg=130, unsigned int wParam=0, long lParam=0) Line 240 + 0x1c bytes C++
mfc90ud.dll!AfxWndProc(HWND__ * hWnd=0x002f11a8, unsigned int nMsg=130, unsigned int wParam=0, long lParam=0) Line 403 C++
mfc90ud.dll!AfxWndProcBase(HWND__ * hWnd=0x002f11a8, unsigned int nMsg=130, unsigned int wParam=0, long lParam=0) Line 441 + 0x15 bytes C++
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0x693 bytes
user32.dll!_DispatchClientMessage@24() + 0x51 bytes
user32.dll!___fnNCDESTROY@4() + 0x2d bytes
ntdll.dll!_KiUserCallbackDispatcher@12() + 0x2e bytes
user32.dll!_NtUserDestroyWindow@4() + 0x15 bytes
comctl32.dll!ComboBox_NcDestroyHandler() + 0x32 bytes
comctl32.dll!ComboBox_WndProc() + 0x131 bytes
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes
user32.dll!_CallWindowProcAorW@24() + 0x5e bytes
user32.dll!_CallWindowProcW@20() + 0x1b bytes
mfc90ud.dll!CWnd::DefWindowProcW(unsigned int nMsg=130, unsigned int wParam=0, long lParam=0) Line 1043 + 0x20 bytes C++
mfc90ud.dll!CWnd::Default() Line 274 C++
mfc90ud.dll!CWnd::OnNcDestroy() Line 853 C++
mfc90ud.dll!CWnd::OnWndMsg(unsigned int message=130, unsigned int wParam=0, long lParam=0, long * pResult=0x0018da94) Line 2042 C++
mfc90ud.dll!CWnd::WindowProc(unsigned int message=130, unsigned int wParam=0, long lParam=0) Line 1755 + 0x20 bytes C++
Easyscan2.exe!CExtComboBoxBase::WindowProc(unsigned int message=130, unsigned int wParam=0, long lParam=0) Line 2858 C++
Easyscan2.exe!CExtComboBox::WindowProc(unsigned int message=130, unsigned int wParam=0, long lParam=0) Line 4209 C++
mfc90ud.dll!AfxCallWndProc(CWnd * pWnd=0x1a067480, HWND__ * hWnd=0x003c0c3c, unsigned int nMsg=130, unsigned int wParam=0, long lParam=0) Line 240 + 0x1c bytes C++
mfc90ud.dll!AfxWndProc(HWND__ * hWnd=0x003c0c3c, unsigned int nMsg=130, unsigned int wParam=0, long lParam=0) Line 403 C++
mfc90ud.dll!AfxWndProcBase(HWND__ * hWnd=0x003c0c3c, unsigned int nMsg=130, unsigned int wParam=0, long lParam=0) Line 441 + 0x15 bytes C++
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0x693 bytes
user32.dll!_DispatchClientMessage@24() + 0x51 bytes
user32.dll!___fnNCDESTROY@4() + 0x2d bytes
ntdll.dll!_KiUserCallbackDispatcher@12() + 0x2e bytes
user32.dll!_NtUserDestroyWindow@4() + 0x15 bytes
mfc90ud.dll!CWnd::DestroyWindow() Line 1007 + 0xd bytes C++
Easyscan2.exe!CMoreButtonDlg::OnOK() Line 261 + 0xf bytes C++
mfc90ud.dll!_AfxDispatchCmdMsg(CCmdTarget * pTarget=0x18b51de8, unsigned int nID=1, int nCode=0, void (void)* pfn=0x52bb91e0, void * pExtra=0x00000000, unsigned int nSig=57, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000) Line 82 C++
mfc90ud.dll!CCmdTarget::OnCmdMsg(unsigned int nID=1, int nCode=0, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000) Line 381 + 0x27 bytes C++
mfc90ud.dll!CDialog::OnCmdMsg(unsigned int nID=1, int nCode=0, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000) Line 85 + 0x18 bytes C++
mfc90ud.dll!CWnd::OnCommand(unsigned int wParam=1, long lParam=1314822) Line 2364 C++
mfc90ud.dll!CWnd::OnWndMsg(unsigned int message=273, unsigned int wParam=1, long lParam=1314822, long * pResult=0x0018e444) Line 1769 + 0x1e bytes C++
mfc90ud.dll!CWnd::WindowProc(unsigned int message=273, unsigned int wParam=1, long lParam=1314822) Line 1755 + 0x20 bytes C++
Easyscan2.exe!CExtWS<CExtADLG<CExtResDlg>,301>::WindowProc(unsigned int message=273, unsigned int wParam=1, long lParam=1314822) Line 778 C++
Easyscan2.exe!CExtWA<CExtWS<CExtADLG<CExtResDlg>,301> >::WindowProc(unsigned int message=273, unsigned int wParam=1, long lParam=1314822) Line 1214 + 0x14 bytes C++
Easyscan2.exe!CExtResizableDialog::WindowProc(unsigned int message=273, unsigned int wParam=1, long lParam=1314822) Line 390 + 0x14 bytes C++
mfc90ud.dll!AfxCallWndProc(CWnd * pWnd=0x18b51de8, HWND__ * hWnd=0x002f03ba, unsigned int nMsg=273, unsigned int wParam=1, long lParam=1314822) Line 240 + 0x1c bytes C++
mfc90ud.dll!AfxWndProc(HWND__ * hWnd=0x002f03ba, unsigned int nMsg=273, unsigned int wParam=1, long lParam=1314822) Line 403 C++
mfc90ud.dll!AfxWndProcBase(HWND__ * hWnd=0x002f03ba, unsigned int nMsg=273, unsigned int wParam=1, long lParam=1314822) Line 441 + 0x15 bytes C++
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes
user32.dll!_DispatchClientMessage@24() + 0x51 bytes
user32.dll!___fnDWORD@4() + 0x2b bytes
ntdll.dll!_KiUserCallbackDispatcher@12() + 0x2e bytes
user32.dll!_NtUserMessageCall@28() + 0x15 bytes
user32.dll!_SendMessageWorker@24() + 0x8c15 bytes
user32.dll!_SendMessageW@16() + 0x4c bytes
mfc90ud.dll!CWnd::SendMessageW(unsigned int message=273, unsigned int wParam=1, long lParam=1314822) Line 42 + 0x44 bytes C++
Easyscan2.exe!CExtButton::_OnClick(bool bSelectAny=false, bool bSeparatedDropDownClicked=false) Line 1859 C++
Easyscan2.exe!CExtButton::OnLButtonUp(unsigned int nFlags=0, CPoint point={...}) Line 1803 + 0x48 bytes C++
mfc90ud.dll!CWnd::OnWndMsg(unsigned int message=514, unsigned int wParam=0, long lParam=983072, long * pResult=0x0018f570) Line 2183 C++
mfc90ud.dll!CWnd::WindowProc(unsigned int message=514, unsigned int wParam=0, long lParam=983072) Line 1755 + 0x20 bytes C++
Easyscan2.exe!CExtButton::WindowProc(unsigned int message=514, unsigned int wParam=0, long lParam=983072) Line 2952 + 0x14 bytes C++
mfc90ud.dll!AfxCallWndProc(CWnd * pWnd=0x14040de8, HWND__ * hWnd=0x00141006, unsigned int nMsg=514, unsigned int wParam=0, long lParam=983072) Line 240 + 0x1c bytes C++
mfc90ud.dll!AfxWndProc(HWND__ * hWnd=0x00141006, unsigned int nMsg=514, unsigned int wParam=0, long lParam=983072) Line 403 C++
mfc90ud.dll!AfxWndProcBase(HWND__ * hWnd=0x00141006, unsigned int nMsg=514, unsigned int wParam=0, long lParam=983072) Line 441 + 0x15 bytes C++
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes
user32.dll!_DispatchMessageWorker@8() + 0xed bytes
user32.dll!_DispatchMessageW@4() + 0xf bytes
user32.dll!_IsDialogMessageW@8() + 0x11e bytes
mfc90ud.dll!CWnd::IsDialogMessageW(tagMSG * lpMsg=0x09942ec8) Line 198 C++
mfc90ud.dll!CWnd::PreTranslateInput(tagMSG * lpMsg=0x09942ec8) Line 4332 C++
mfc90ud.dll!CDialog::PreTranslateMessage(tagMSG * pMsg=0x09942ec8) Line 80 C++
Easyscan2.exe!CExtWS<CExtADLG<CExtResDlg>,301>::PreTranslateMessage(tagMSG * pMsg=0x09942ec8) Line 425 C++
Easyscan2.exe!CExtResizableDialog::PreTranslateMessage(tagMSG * pMsg=0x09942ec8) Line 611 C++
mfc90ud.dll!CWnd::WalkPreTranslateTree(HWND__ * hWndStop=0x0010160c, tagMSG * pMsg=0x09942ec8) Line 2946 + 0x14 bytes C++
mfc90ud.dll!AfxInternalPreTranslateMessage(tagMSG * pMsg=0x09942ec8) Line 233 + 0x12 bytes C++
mfc90ud.dll!CWinThread::PreTranslateMessage(tagMSG * pMsg=0x09942ec8) Line 777 + 0x9 bytes C++
Easyscan2.exe!CMobileApp::PreTranslateMessage(tagMSG * pMsg=0x09942ec8) Line 766 C++
mfc90ud.dll!AfxPreTranslateMessage(tagMSG * pMsg=0x09942ec8) Line 252 + 0x11 bytes C++
mfc90ud.dll!AfxInternalPumpMessage() Line 178 + 0x18 bytes C++
mfc90ud.dll!CWinThread::PumpMessage() Line 900 C++
mfc90ud.dll!CWinThread::Run() Line 629 + 0xd bytes C++
mfc90ud.dll!CWinApp::Run() Line 887 C++
mfc90ud.dll!AfxWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, wchar_t * lpCmdLine=0x076ebec6, int nCmdShow=1) Line 47 + 0xd bytes C++
Easyscan2.exe!wWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, wchar_t * lpCmdLine=0x076ebec6, int nCmdShow=1) Line 34 C++
Easyscan2.exe!__tmainCRTStartup() Line 578 + 0x35 bytes C
Easyscan2.exe!wWinMainCRTStartup() Line 403 C
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes
ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes