VC6.0下使用DebugBreak
阿新 • • 發佈:2019-01-07
在開發過程中,可能存在一些老專案還是使用VC6.0開發。如果一個dll崩掉了,我們可以通過編譯相對應的Debug版本,並使用DebugBreak()設定斷點來。重操作,單步除錯來定位錯誤。
1. 安裝VC++6.0之後,檢查是否含有Sp6的補丁包,若沒有需要補充安裝。
2. 接下來還需要修改登錄檔,regedit登錄檔編輯器,查詢-項 aedebug, 修改debugger為msdev.exe的絕對路徑,如下: "E:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin\msdev.exe" -p %ld -e %ld 要改兩個地方的 debugger HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug 將其改為"E:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin\msdev.exe" -p %ld -e %ld
3. 這樣在原始碼中就可以使用DebugBreak()來設定斷點了 需要注意兩點: ①程式要在cmd中啟動,以服務形式啟動要除錯的程式時,斷點是無效的 ②最基本的,要除錯的程式必須是Debug版本的
除了DebugBreak之外,還可以使用 _asm INT 3; 來設定斷點