سؤال

I am investigating a crash of an application I am working on. The visual basic part is a simple form, which creates PictureBoxes and buttons. Calls are made to the C+ dll upon button clicks. The PictureBoxes provide handles to the DLL which uses them to create windows using WINAPI and displays in OpenGL.

Initially views are created in the PictureBoxes no problem, and are displayed correctly, but upon a reset event, the views are destroyed and recreated. This is when the crash happens.

I have tried numerous tools, Application verifier, Windbg, and Debug Diagnostic Tool. Both Windbg and Debug Diagnostic Tool point to the place, however I dont know how to fix it.

Unfortunately, switching from VB6 is not an option for me as it is out of my control.

Please follow the links to crash logs.

link text (olny allowed to post 1 link, but both logs are visible)

Any help greatly appreciated,

Leon

هل كانت مفيدة؟

المحلول

From you text file:

(134c.1344): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=034b0ebc ebx=00000000 ecx=7352e100 edx=00000000 esi=02e6813c edi=02e6813c
eip=7349fdd2 esp=0012fc20 ebp=0012fc44 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010202
MSVBVM60!HrMenuHandleMenuCommand+0x3f:
7349fdd2 ffb048010000    push    dword ptr <Unloaded_Ed20.dll>+0x147 (00000148)[eax] ds:0023:034b1004=????????
0:000> kb
ChildEBP RetAddr  Args to Child              
0012fc28 7347e1b9 034b0ebc 00000000 02e92ee8 MSVBVM60!HrMenuHandleMenuCommand+0x3f
0012fc44 7347dc27 034b0ebc 000f144a 00000111 MSVBVM60!_DefWmCommand+0xc7
0012fcb0 734d378a 02e92ee8 000f144a 00000111 MSVBVM60!VBDefControlProc+0xb47
0012fcf0 7347ce03 034b0ebc 000f144a 00000111 MSVBVM60!PixCtlProc+0x57c
0012fd18 7347f800 034b0ebc 000f144a 00000111 MSVBVM60!CommonGizWndProc+0xae
0012fd74 7e418734 000f144a 00000111 00000000 MSVBVM60!StdCtlWndProc+0x232
0012fda0 7e418816 7347f5d1 000f144a 00000111 USER32!InternalCallWinProc+0x28
0012fe08 7e4189cd 00000000 7347f5d1 000f144a USER32!UserCallWinProcCheckWow+0x150
0012fe68 7e4196c7 0012fe90 00000001 0012feb8 USER32!DispatchMessageWorker+0x306
0012fe78 7342a6b0 0012fe90 ffffffff 02e76fec USER32!DispatchMessageA+0xf
0012feb8 7342a627 ffffffff 02e78f8c 02e60000 MSVBVM60!ThunderMsgLoop+0xfd
0012fecc 7342a5c9 02e76fec ffffffff 02e7efcc MSVBVM60!CMsoCMHandler::FPushMessageLoop+0x19
0012fefc 7342a505 02e7efcc ffffffff 0000134c MSVBVM60!SCM::FPushMessageLoop+0xb9
0012ff18 7342a4d0 02e78f88 02e7efcc ffffffff MSVBVM60!SCM_MsoCompMgr::FPushMessageLoop+0x2b
0012ff3c 73423644 ffffffff 0183f558 0078c2bc MSVBVM60!CMsoComponent::PushMsgLoop+0x26
0012ffb8 004013aa 00401ac4 7c817077 0183f558 MSVBVM60!ThunRTMain+0x9b
0012fff0 00000000 004013a0 00000000 78746341 with_debug_info!__vbaS+0xa

You were in: MSVBVM60!HrMenuHandleMenuCommand+0x3f

The instruction that fialed: push dword ptr +0x147 (00000148)[eax] ds:0023:034b1004=????????

eax is invalid, thus the derefernce failed.

My guess is that you have a menu handler in Ed20.dll which you are trying to run, but this dll has been unloaded (as indicated by the <Unloaded_Ed20.dll>). You should find out why 1. the dll was unloaded or 2. Why handler is still registered after the unload.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top