我开始使用WinDbg来调试VB6运行时错误,但无法让它真正起作用,我只需要知道错误的来源(错误来自的过程).
我创建了一个小应用程序来测试并使它抛出溢出运行时错误,如下所示:
Private Sub Command1_Click()
Dim a As Byte
a = 1000
End Sub
Run Code Online (Sandbox Code Playgroud)
我通过选中"创建符号调试信息"选项编译它以创建PDB文件.
然后我将应用程序附加到WinDbg并单击按钮以抛出错误,但是当我检查调用堆栈时,我没有找到任何Command1_Click程序的跟踪.我得到的是以下内容:
0:001> ~* k
0 Id: 56c.173c Suspend: 1 Teb: 7ffde000 Unfrozen
ChildEBP RetAddr
0012ea08 7e419418 ntdll!KiFastSystemCallRet
0012ea40 7e4249c4 USER32!NtUserWaitMessage+0xc
0012ea68 7e43a956 USER32!InternalDialogBox+0xd0
0012ed28 7e43a2bc USER32!SoftModalMessageBox+0x938
0012ee78 7e43a10b USER32!MessageBoxWorker+0x2ba
0012eee4 729af829 USER32!MessageBoxIndirectA+0xb8
WARNING: Stack unwind information not available. Following frames may be wrong.
0012ef24 729af6a5 MSVBVM60!IID_IVbaHost+0x411e9
0012ef4c 729af9a0 MSVBVM60!IID_IVbaHost+0x41065
0012ef7c 729a3d68 MSVBVM60!IID_IVbaHost+0x41360
0012efe0 729a3db6 MSVBVM60!IID_IVbaHost+0x35728
0012f000 72a0c411 MSVBVM60!IID_IVbaHost+0x35776
0012f01c 72a0c6f3 MSVBVM60!_vbaOnGoCheck+0xba
0012f05c 7c9032a8 …Run Code Online (Sandbox Code Playgroud)