目錄
本地調試應用程式
遠端調試應用程式
調試正在運作的程序
從程式加載之初開始調試
從程式加載之初開始調試的另一種方法
本地調試應用程式
- Open Executable...從本機選擇一個程式進行調試
- Attach to a Process...将調試器挂載到本機正在運作的一個程式
遠端調試應用程式
通過Ethernet建立遠端連接配接是比較常見的一種方式。
調試正在運作的程序
- 從調試工具檔案夾(例如: C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\)複制dbgsrv.exe, dbgeng.dll , dbghelp.dll, DbgModel.dll到Target計算機。
- 關閉防火牆,如果是Windows PE系統: wpeutil disablefirewall。
- 在Target中啟動debug stub server, 指定TCP端口。 e.g. Dbgsrv.exe -t tcp:port=4321。
- 打開Host的Windbg.exe,連接配接到Target。File > Connect to Remote Stub Server > dialog box。連接配接資訊的格式: tcp:server=ServerIP,port=PortNumber. e.g. tcp:server=10.20.30.40,port=4321。
- File>Attach to a Process, 可以看到Target正在運作的程序,選擇需要調試的程序作為Debugee。
從程式加載之初開始調試
- 啟動debug stub server的時候帶上-cs參數,它使dbgsrv建立一個新的程序并讓這個新程序暫停。例如:dbgsrv -t tcp:port=4321 -cs app.exe
- 同樣,通過Remote Stub Server連接配接Target,在程序清單中可以發現app.exe程序,選擇進入調試視窗。
- 在WinDbg中執行~*m指令。這個指令恢複被dbgsrv暫停的所有線程。
- 現在可以為debuggee設定斷點,并執行指令g或按F5來運作程序。
- 調試完成後,在WinDbg中執行.endpsrv指令殺死Windows PE上的dbgsrv。
從程式加載之初開始調試的另一種方法
- WinDbg Preview(從Windows Store安裝)可以從WinDbg預覽中啟動遠端程序,它将立即被挂起。
- 檔案>連接配接到程序伺服器。使用與WinDbg相同的連接配接字元串。
- 啟動可執行(進階)。指定遠端機器上的可執行檔案和開始目錄路徑。
注意:雖然WinDbg Preview啟動遠端調試友善,但是它的功能不如WinDbg.exe齊全。