以發生崩潰的出錯為例:
首先開啟工程,按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”。顯然這是因為向一個空指標指向的地址複製一個數據,從而造成了崩潰。
以發生崩潰的出錯為例:
首先開啟工程,按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”。顯然這是因為向一個空指標指向的地址複製一個數據,從而造成了崩潰。