天天看點

搭建WinDbg應用程式調試環境本地調試應用程式遠端調試應用程式

目錄

本地調試應用程式

遠端調試應用程式

調試正在運作的程序

從程式加載之初開始調試

從程式加載之初開始調試的另一種方法

本地調試應用程式

  • Open Executable...從本機選擇一個程式進行調試
  • Attach to a Process...将調試器挂載到本機正在運作的一個程式
搭建WinDbg應用程式調試環境本地調試應用程式遠端調試應用程式

遠端調試應用程式

通過Ethernet建立遠端連接配接是比較常見的一種方式。

搭建WinDbg應用程式調試環境本地調試應用程式遠端調試應用程式

調試正在運作的程序

  • 從調試工具檔案夾(例如: 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。
搭建WinDbg應用程式調試環境本地調試應用程式遠端調試應用程式
  • 打開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。
搭建WinDbg應用程式調試環境本地調試應用程式遠端調試應用程式
  • 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應用程式調試環境本地調試應用程式遠端調試應用程式
  • 在WinDbg中執行~*m指令。這個指令恢複被dbgsrv暫停的所有線程。
  • 現在可以為debuggee設定斷點,并執行指令g或按F5來運作程序。
  • 調試完成後,在WinDbg中執行.endpsrv指令殺死Windows PE上的dbgsrv。
搭建WinDbg應用程式調試環境本地調試應用程式遠端調試應用程式

從程式加載之初開始調試的另一種方法

  • WinDbg Preview(從Windows Store安裝)可以從WinDbg預覽中啟動遠端程序,它将立即被挂起。
  • 檔案>連接配接到程序伺服器。使用與WinDbg相同的連接配接字元串。
搭建WinDbg應用程式調試環境本地調試應用程式遠端調試應用程式
  • 啟動可執行(進階)。指定遠端機器上的可執行檔案和開始目錄路徑。
搭建WinDbg應用程式調試環境本地調試應用程式遠端調試應用程式

注意:雖然WinDbg Preview啟動遠端調試友善,但是它的功能不如WinDbg.exe齊全。