使用PowerDbg自動化Windbg除錯過程

2021-09-20 13:51:16 字數 1471 閱讀 9237

powerdbg是乙個powershell指令碼,使用這個指令碼可以連線到windbg上面,遠端控制windbg,可以通過程式設計的方式分析windbg輸出;加之powerdbg強大的程式設計能力,方便我們編寫一些強大的除錯指令碼。

使用方法比較簡單,從

powerdbg的工作原理是,在windbg裡設定乙個遠端除錯伺服器,啟動另乙個偵錯程式—通常是命令列的偵錯程式(例如cdb.exe)作為客戶端。然後powerdbg使用程序重定向的功能將除錯命令輸入到cdb.exe,再由cdb.exe再輸入到windbg遠端除錯伺服器上遠端執行。接著將windbg的命令重定向到powershell指令碼,當然啦輸出結果會被powershell處理以後再顯示出來。

簡單介紹一下用法:

1.在windbg這一邊,開啟乙個要除錯的程式,接著開啟遠端除錯伺服器功能,通過下面這個命令可以做到:

.server tcp:port=12345

2. 3.

啟動powershell,需要以管理員的許可權啟動(vista以上需要以提公升後的管理員許可權啟動)。

4.在powershell裡輸入(win 7裡,powershell在附件選單下面):

set-executionpolicy unrestricted

5.接著輸入下面的命令匯入powerdbg模組

import-module windbg

6.輸入下面的powerdbg命令連線到遠端windbg伺服器上(如果你的windbg.exe不是安裝在c:\debuggers目錄下,那麼你需要手工修改一下檔案c:\windows\system32\windowspowershell\v1.0\modules\windbg\windbg.psm1裡的$cdbpath變數的值):

connect-windbg "tcp:port=12345,server=

機器名"

7.這下就可以執行windbg命令了,使用send-powerdbgcommand來傳送命令(命令的引數就是你要傳送的命令):

send-powerdbgcommand "g"

8.在windbg觸發到斷點以後,你就可以執行一些操作,並且讀取格式化過後的輸出了。例如下面兩個命令:

send-powerdbgcommand ".loadby sos mscorwks"

analyze-powerdbgthreads

下面就是輸出,你可以看到powerdbg將各個執行緒的狀態都用文字的形式描述出來了,而不象原來sos!threads只是列印一些莫名其妙的數字:

如果要取消與windbg的連線,使用下面的命令就可以做到了:

disconnect-windbg

自動化 Android logcat使用

logcat是android中乙個命令列工具,可以用於得到程式的log資訊。語法 adb logcat pc端執行 adb logcat b android的log輸出量巨大,因此android把log輸出到不同的緩衝區。4個 radio system event main 不指定緩衝區預設syst...

selenium自動化的使用

什麼是selenium ide?selenium的ide 整合開發環境 是乙個易於使用的firefox外掛程式,用於開發selenium測試案例。它提供了乙個圖形使用者介面,用於記錄使用firefox瀏覽器,用來學習和使用selenium使用者操作,但它只能用於只用firefox瀏覽器不支援其它瀏覽...

使用 Fabric 自動化部署

fabric 目前僅支援 python2,如果你的系統中只有 python3 版本,可以使用 fabric3,但是只能安裝低版本1.14.post1,高版本不支援api方法。接下就可以簡單地通過 pip 命令安裝 fabric 了。如果是 python 2 pip install fabric 如果...