1. 程式人生 > >VC6.0下使用DebugBreak

VC6.0下使用DebugBreak

在開發過程中,可能存在一些老專案還是使用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; 來設定斷點