天天看點

WinDbg 常用指令

_NT_SYMBOL_PATH     SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols

_NT_ALT_SYMBOL_PATH  D:\xuleigang\Test\VSS\TestMemMfc\debug

SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols

kbn   列出目前的調用堆棧

.loadby sos mscorwks    假如是.net程式的話,列出目前的調用情況

!clrstack   目前.net的調用情況(崩潰時)

!clrstack -p    更加詳細的資訊

!dumpstackobjects  指令可以檢視目前線程堆棧中使用的所有對象

!dumpobj 指令檢視對象的詳細資訊

!dumpclass 指令先進一步檢視對象的類型資訊

!do 位址(上個顯示的位址)   顯示此類下的所有變量情況 或 其位址代表的詳細值

!analyze –v    将分析dump檔案,并顯示程式崩潰處于的代碼行

!heap -s    目前堆棧的記憶體使用情況

!heap -stat -h 02430000   檢視上一個指令中某個堆的記憶體使用情況

!heap -flt s 20000 1     進一步分析某個堆的使用情況

!heap -l      指令分析記憶體

!heap -p -a  位址    : 具體的記憶體位置

!address 函數位址    檢視此記憶體詳細資訊

!gle 會顯示目前線程的上一個錯誤值和狀态值

顯示目前線程,程序和子產品資訊:!teb顯示目前線程的環境資訊。最常見的用途是檢視目前線程堆棧的起始位址,然後在堆棧中搜尋值。!peb顯示目前程序的環境資訊,比如執行檔案的路徑等等。lm顯示程序中加載的子產品資訊。

顯示最相近的符号:ln Address。如果你有一個C++對象的指針,可以用來ln來檢視該對象類型。

uf COM_SUNWAY_POWER!QueryAllDataV   顯示此函數反編譯的值

kv 指令以獲得實際的異常的調用堆棧

~ * kb    列出所有程序中線程。

cd  到adplus目錄

ADPlus –hang –pn notepad.exe –o c:\dumps