vs调试的时候如何跳转到出错代码
发布网友
发布时间:2022-07-22 04:09
我来回答
共1个回答
热心网友
时间:2023-11-04 22:44
首先我们用VC IDE装载这个工程,按F11执行它,Alt+8 切换至反汇编窗口(Disassembly)。
Ctrl+G调出“Go To”的窗口。默认选择“Address”。
在“Enter address expression”编辑框中输入崩溃发生地0x005B7697。
然后点击“Go To”按钮。跳转到 0x005B7697
005B768C sub ecx,1000h
005B7692 sub eax,1000h
005B7697 test dword ptr [ecx],eax <--- stack overflow
005B7699 cmp eax,1000h
005B769E jae 005B768C
005B76A0 sub ecx,eax
005B76A2 mov eax,esp mov dword ptr [eax],0Ah
看到崩溃时执行的反汇编代码,设置一个断点,按F5来到这里。
在Watch窗口中键入“@EAX”察看EAX寄存器,得到的数值是“0xcccccccc”。显然这是因为向一个空指针指向的地址复制一个数据,从而造成了崩溃。