windbg

Windbg 使用指南

Windbg是Windows官方用于分析日志的工具。

dmp文件位置

dmp文件路徑在:C:\Windows\Minidump

如何打開dmp文件

  • 可直接將相關(guān)的dmp文件拖到windbg中打開。
  • ctrl+s打開符號表,將下列文字復(fù)制進符號表:SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
  • 之后再打開相應(yīng)的dmp文件(如果上一個dmp文件沒關(guān)閉是無法正常打開新的dmp文件,ctrl+f5關(guān)閉上一個dmp文件)。

查看報錯信息

  • 在下面就可以看到相應(yīng)的報錯信息。
  • 如果運行時間不到1分鐘則說明是開機就藍屏,大概率是硬件問題。
  • 如果是驅(qū)動問題,則在相應(yīng)機器上尋找驅(qū)動對應(yīng)的軟件,對驅(qū)動損壞還是沖突進行判斷。

Windbg常見命令

!analyze -v

詳細列出dump文件的信息,其中會有導(dǎo)致錯誤的代碼片段,以及一些列數(shù)據(jù)可供分析。

kb

顯示當前線程調(diào)用堆棧,一般可確認是程序哪一行出了問題。

~*kb

顯示所有線程調(diào)用堆棧。

lm

顯示當前加載的模塊信息(*.pdb *.dll)。

kP

可以看函數(shù)的入?yún)ⅰ?/p>

!for_each_frame dv /t

可以看函數(shù)中的局部變量。

dc, db

查看某一內(nèi)存中的值,可以直接接變量名(不過可能需要回溯棧)。

!threads

顯示所有線程。

~0s, ~1s

進入某個線程。

!frame ProcessA!FunctionA

查看某一變量時有時需要回溯棧。

!uniqstack

擴展命令顯示當前進程中所有線程的調(diào)用堆棧,除開重復(fù)的那些。

!teb

擴展以格式化后的形式顯示線程環(huán)境塊(TEB)的信息。

s-sa 和 s-su

命令搜索未指定的ASCII和Unicode字符串。這在檢查某段內(nèi)存是否包含可打印字符時有用。

dds、dps 和 dqs

命令顯示給定范圍內(nèi)存的內(nèi)容。這些命令是把內(nèi)存區(qū)域轉(zhuǎn)儲出來,并把內(nèi)存中每個元素都視為一個符號對其進行解析。

  • dds:四字節(jié)視為一個符號。
  • dqs:每8字節(jié)視為一個符號。
  • dps:根據(jù)當前處理器架構(gòu)來選擇最合適的長度。

.kframes

命令設(shè)置堆棧回溯顯示的默認長度。默認20。

k, kb, kd, kp, kP, kv

顯示給定線程的調(diào)用堆棧,以及其他相關(guān)信息。通常要結(jié)合使用,否則顯示的內(nèi)容很少。

.reload /i xxx.dll

忽略.pdb文件版本不匹配的情況。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容