-
StackOverflow 文件
-
WinDbg 教程
-
使用者模式應用除錯
-
重要命令
記錄你的工作
記住你做過的事情並保留長輸出,這些輸出無法儲存在 WinDbg 的緩衝區中。有一個日誌可用於重現除錯步驟,例如在 Stack Overflow 上提問。
命令 |
目的 |
.logopen |
建立一個日誌檔案 |
.logclose |
關閉日誌檔案 |
.dump |
儲存故障轉儲檔案(當前除錯會話的快照) |
使用符號
如果沒有或有不正確的符號,你可能會收到錯誤資訊並被誤導。在 WinDbg 中開始工作之前,請確保你熟悉這些命令。另請參見如何在 WinDbg 中設定符號 。
命令 |
目的 |
.symfix |
設定或新增符號到官方 Microsoft 符號路徑 |
.sympath |
設定或新增自己或第三方符號 |
.reload |
重新載入符號 |
.symopt |
定義符號處理選項 |
!sym |
控制符號載入 |
x |
檢查符號 |
ln |
列出最近的符號 |
崩潰分析
找出發生了什麼(在崩潰轉儲中)以及如何處理事件(在實時除錯中)。
命令 |
目的 |
.exr |
顯示異常記錄 |
.lastevent |
顯示上次活動 |
sx |
定義異常處理 |
!analyze |
分析崩潰或掛起 |
!avrf |
應用驗證者 |
環境
檢查程序名稱和版本資訊。
執行緒,呼叫堆疊,暫存器和記憶體
檢查細節。
命令 |
目的 |
~ |
執行緒列表 |
r |
暫存器 |
k |
呼叫堆疊 |
d * |
顯示記憶體 |
e * |
編輯記憶 |
s |
搜尋記憶 |
.formats |
在數字格式之間轉換 |
? |
評估表達 |
u * |
拆卸 |
a |
集合 |
!address |
記憶資訊 |
控制目標
在實時除錯中,控制執行。
命令 |
目的 |
g |
去/繼續 |
gu |
上 |
p |
一小步 |
t |
跟蹤(單步和輸出暫存器) |
bp |
設定斷點 |
bl |
斷點列表 |
使用擴充套件
擴充套件可以提供顯著的優勢和增強。
命令 |
目的 |
.load |
載入擴充套件(完整路徑) |
.loadby |
相對於模組的負載擴充套件 |
.chain |
顯示載入的副檔名 |
.unload |
解除安裝擴充套件 |
停止除錯
連線和分離
命令 |
目的 |
.tlist |
流程清單 |
.attach |
附加到過程 |
.create |
建立流程並附加 |
.childdbg |
定義子程序除錯行為 |
.detach |
脫離過程 |
.kill |
殺死一個程序 |
.restart |
重啟過程 |
WinDbg 的行為
命令 |
目的 |
.prefer_dml |
設定偵錯程式標記語言處理 |
.effmach |
切換位 |
可用性命令
命令 |
目的 |
.cmdtree |
在單獨的視窗中載入帶有預定義命令的文字檔案 |
得到幫助
命令 |
目的 |
.hh |
顯示 WinDbg 命令的幫助手冊 |