1、如何抓取dump檔案。
這要分兩種情況:
第二種情況: 對於win2k3作業系統是沒有上面說到的功能的,當然上面的方法也是不完善的,因為它不能在程式崩潰的那一刻抓取到最適合的dump檔案。可以通過adplus命令來抓取。例如:
adplus -hang -pn w3wp.exe -o c:\dumps
該命令立刻把w3wp.exe的full dump抓取到c:\dumps資料夾內。
adplus -hang -p 81388 -o c:\dumps
該命令立刻把81388這個程序的full dump抓取到c:\dumps資料夾內。
adplus -crash -pn w3wp.exe -fullonfirst -o c:\dumps
adplus -crash -p 81388 -fullonfirst -o c:\dumps
該命令會通過監視程序w3wp.exe或81388的執行,在當第一次出現異常時記錄一次完整的dump
adplus -crash -pn w3wp.exe -o c:\dumps
該命令也是在w3wp.exe崩潰時記錄dump,但這是乙個mini dump
#一些常用的引數:
-crash:表示我捕捉的是乙個crash dump。
-p:指定要捕捉的程序id。 -iis表示我們捕捉iis的所有程序。
-quiet:不彈出提示視窗
-fullonfirst:表示我希望在first chance時捕捉完整的dump資訊,也就是程序的所有完整資訊。
-o :後面跟著dump檔案的存放路徑
-c : 指定配置檔案
#配置環境變數:
計算機-->屬性-->高階-->環境變數-->系統環境變數-->
_nt_symbol_path c:"windows"symbols
為path系統環境變數增加c:\program files\debugging tools for windows (x86)\
#還能通過指定配置檔案來靈活使用adplus,例如可以指定clr發生某種異常時記錄dump等。
#解決在抓取dump過程出現"activex 部件不能建立物件: 'wscript.shell'" 錯誤的方法,執行如下命令:
regsvr32 %windir%"system32"wshom.ocx
#注意:當執行adplus抓取dump後,對應的w3wp.exe程序將會自動**重啟新的程序
2、分析dump檔案。
0:000> .load c:\windows\microsoft.net\framework\v2.0.50727\sos.dll //載入除錯模組
0:000>!eeheap -gc //檢視託管堆的情況(包括大小)
0:000>!dumpheap -min 85000 -stat //顯示大小大於85000的對角的統主資訊
0:000>!dumpheap -min 85000 //顯示大小大於85000的對角的統主資訊
0:000>!dumpheap -stat //該命令顯示程式中所有物件的統計資訊,顯示的大小是物件本身的大小,不包括物件裡面值的大小
0:000>!gcroot 0x34e9bee0 //來顯示乙個例項的所屬關係
0:000>!dumpheap -mt 790fcb30 //該命令顯示methodtable 790fcb30的詳細資訊
0:000>!dumparray //檢視陣列資訊
0:000>!objsize 012a1ba4 //物件實際在記憶體中的大小
0:000>lm //檢視載入了哪些模組
0:000>!dumpmt -md 00976d48 //得到類的成員函式詳細資訊
如何安裝windbg並得到第乙個dump檔案
windbg初始體驗,問題來了怎麼辦?
windbg初始體驗2,抓住不放的惡棍(outofmemory案例分析ⅰ)
windbg初始體驗3,剪不斷的鐵鍊(outofmemory案例分析ⅱ)
windbg使用技巧
dt v dms server datarow 376c4b58 8 轉存出資料結構 dt s 4c n dms server 查詢結構體大小 回答本文標題中的問題,步驟如下 第一步,開啟日誌記錄 logopen d output.txt 第二步,執行你想要輸出到文字檔案中的命令 第三步,關閉日誌記...
windbg使用技巧
一 64位系統下分析32位程式 windbg版本 跟windbg的版本無關 32位 or 64位 崩潰程式 32位 system型別 64位 此時需要轉到x86模式下,命令如下 1 load wow64exts 2 sw 二 自動分析命令 analyze v 三 symbol path 作業系統 四...
WinDbg使用基礎
啟動windbg後發現以一般的軟體並沒有什麼差別,選單工具欄,客戶區,狀態列都有,估計作用也差不多 為了學習windbg,讓整個過程盡量可控,我們自己編寫被除錯程式 生成release版本的exe檔案,為模擬一般情況下的除錯我們將exe檔案拷貝到乙個單獨的路徑上。通過windbg的file open...