windbg工具安装配置及dump抓取
安裝與配置windbg
安裝與配置windbg的symbol(符號)
第一步 下載WinDBG,
第二步 雙擊下載的文件安裝windbg.安裝時注意記住安裝到那里了.
第三步 windbg訪問符號需要兩個文件(SYMSRV.DLL 和 SYMSTORE.EXE)所以在環境變量path中將windbg安裝目錄添加進去,這一步是告訴windbg那兩個文件放在什么地方.
第四步 新建一個環境變量_NT_SYMBOL_PATH 值為: SRV*c:\mysymbol*?http://msdl.microsoft.com/download/symbols
還有一種方法新的方法是:設置值為?cache*c:\mysymbol;srv*http://msdl.microsoft.com/download/symbols
這兩個的不同點在于 第一個只能緩存符號服務器形式的符號文件,但是第二種可以緩存遠程共享形式的符號文件。.這一步的意思是說告訴windbg,我的符號文件存放在c:mysymbol中
第五步?重啟計算機,再運行運行windbg 打開一個exe文件或者附加到一個進程里去, 你會看到
Symbol search path is: SRV*c:\mysymbol*?http://msdl.microsoft.com/download/symbols
打開c盤看到有一個新目錄mysymbol,里面有windbg新下載的文件,說明配置成功了.
?
加載sos和clr
問題一:WinDBG分X86和X64兩個版本
如果你用的是32位的WinDBG,那直接打開就行;你如果用的是64位的版本,那么如果調試64位代碼也直接打開,如果調試x86的代碼,要使用Wow64下的WinDBG.exe。
問題二:確定SOS和CLR的位置和版本
如果安裝了Visual Studio的機器,可以打開VS的命令行,輸入where sos.dll命令,可以找到sos.dll的全路徑(需要說明的是,找到的不一定是全部的文件)。它的一般位置在C:\Windows\Microsoft.NET\Framework?\version?\SOS.dll。其中Framework?包括Framework和Framework64兩個版本;version?包括v2.0.50727,v3.0,v3.5和v4.0.30319等版本。文件確切路徑的選擇依據要調試程序的版本而定,一般為C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll,CLR為同一目錄下的CLR.dll文件。
問題三:加載SOS和CLR
運氣好的話,使用命令.load C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll可以加載成功。如果失敗,特別是出現The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll) failed, Win32 error 0n193這樣的錯誤,請確認加載sos.dll的版本是否正確。
此外,加載不出錯,并不見得可以直接使用。可以嘗試命令.loadby sos clr。如果命令成功,那么測試環境好了。如果出現了“Unable to find module 'clr'”這樣的錯誤。請鍵入g讓調試程序運行一會兒,停下來的時候再嘗試命令.loadby sos clr,這時一般都會成功。
獲取dump
方法1:任務管理器,生成轉儲文件
win2008 以上版本,在任務管理器中,切換到"進程"選項卡,右鍵點擊想要創建dump文件的進程,然后選擇"Create Dump File(生成轉儲文件)"即可。
方法2:adplus
命令窗口,c:\路徑\adplus -hang -pn w3wp.exe -o c:\dumps
-hang: 表示附加到目標進程,抓取 dump 鏡像,然后解除。對應的參數是 -crash 崩潰模式,該參數會終止目標進程;
-o: 指定 Dump 文件保存路徑
方法2:attach到進程
1) 打開WinDBG并將之Attach 到crash的程序進程
2) 輸入產生dump 文件的命令
WinDBG產生dump 文件的命令是 .dump ,可以選擇不同的參數來生成不同類型的dump文件。
選項(1): /m
命令行示例:.dump /m C:\dumps\myapp.dmp
注解: 缺省選項,生成標準的minidump, 轉儲文件通常較小,便于在網絡上通過郵件或其他方式傳輸。 這種文件的信息量較少,只包含系統信息、加載的模塊(DLL)信息、 進程信息和線程信息。
選項(2): /ma
命令行示例:.dump /ma C:\dumps\myapp.dmp
注解: 帶有盡量多選項的minidump(包括完整的內存內容、句柄、未加載的模塊,等等),文件很大,但如果條件允許(本機調試,局域網環境), 推薦使用這中dump。
選項(3):/mFhutwd
命令行示例:.dump /mFhutwd C:\dumps\myapp.dmp
注解:帶有數據段、非共享的讀/寫內存頁和其他有用的信息的minidump。包含了通過minidump能夠得到的最多的信息。是一種折中方案。
轉載于:https://www.cnblogs.com/Invokerr/p/6839949.html
總結
以上是生活随笔為你收集整理的windbg工具安装配置及dump抓取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哈工大密码学实验CA
- 下一篇: .net复习之七