利用WinDBG分析系統(tǒng)藍(lán)屏死機(jī)的幕后真兇
Windbg是在windows平臺(tái)下,強(qiáng)大的用戶態(tài)和內(nèi)核態(tài)調(diào)試工具。相比較于Visual Studio,它是一個(gè)輕量級(jí)的調(diào)試工具,所謂輕量級(jí)指的是它的安裝文件大小較小,但是其調(diào)試功能,卻比VS更為強(qiáng)大。它的另外一個(gè)用途是可以用來(lái)分析dump數(shù)據(jù)。
Windbg是Microsoft公司免費(fèi)調(diào)試器調(diào)試集合中的GUI的調(diào)試器,支持Source和Assembly兩種模式的調(diào)試。Windbg不僅可以調(diào)試應(yīng)用程序,還可以進(jìn)行Kernel Debug。結(jié)合Microsoft的Symbol Server,可以獲取系統(tǒng)符號(hào)文件,便于應(yīng)用程序和內(nèi)核的調(diào)試。Windbg支持的平臺(tái)包括X86、IA64、AMD64。下面系統(tǒng)天地小編就以WinDBG為大家分析導(dǎo)致系統(tǒng)藍(lán)屏死機(jī)的幕后真兇。
藍(lán)屏死機(jī)時(shí)會(huì)留下類似以下文字:
A problem has been detected and Windows has been shut down to prevent damageto your computer.PAGE_FAULT_IN_NONPAGED_AREA
If this is the first time you’ve seen this error screen,
restart your computer. If this screen appears again, follow
these steps:
Check to make sure any new hardware or software is properly installed.
If this is a new installation, ask your hardware or software manufacturer
for any Windows updates you might need.
If problems continue, disable or remove any newly installed hardware
or software. Disable BIOS memory options such as caching or shadowing.
If you need to use Safe Mode to remove or disable components, restart
your computer, press F8 to select Advanced Startup Options, and then
select Safe Mode.
Technical information:
*** STOP: 0×00000050 (0×00000000, 0×00000000, 0×00000000, 0×00000000)
Beginning dump of physical memory
藍(lán)屏電腦自動(dòng)重啟的大致成因
1、電腦藍(lán)屏出現(xiàn)是很有規(guī)律的,通常二種常見(jiàn)的不當(dāng)操作會(huì)造成系統(tǒng)藍(lán)屏,第一種是直接切斷電腦電源或者停電,這種情況比較多見(jiàn),不好一點(diǎn)造成系統(tǒng)藍(lán)屏,更換一點(diǎn)造成系統(tǒng)文件丟失,電腦不能正常開機(jī)。隨意電腦電源不能直接切斷而是關(guān)機(jī)后再拔電源。
2、電腦藍(lán)屏自動(dòng)重啟還可能與安裝和系統(tǒng)有沖突的軟件有關(guān),這其中惡意軟件占多數(shù),所以不要輕易安裝不正當(dāng)來(lái)源的軟件??梢杂密浖芗抑惖陌踩珣?yīng)用安裝軟件。
電腦藍(lán)屏自動(dòng)重啟是我們使用電腦過(guò)程中經(jīng)常會(huì)遇到的問(wèn)題,原因可能是系統(tǒng)補(bǔ)丁問(wèn)題、硬件問(wèn)題、使用不當(dāng)?shù)榷喾矫娴?。如何修?fù)?對(duì)于新手來(lái)說(shuō)可以用《電腦藍(lán)屏死機(jī)代碼查詢器》來(lái)查找大概就能知道原因。如果不怕麻煩進(jìn)行更細(xì)致的分析可以用下面的工具。
用Debugging Tools捉兇
步驟概略:1、打開”小內(nèi)存轉(zhuǎn)儲(chǔ)”功能;2、配置WinDbg; 3、使用windbg分析Dump文件。
設(shè)置”小內(nèi)存轉(zhuǎn)儲(chǔ)”功能
右鍵“計(jì)算機(jī)”–>屬性–>高級(jí)系統(tǒng)設(shè)置–>高級(jí)–>啟動(dòng)和故障恢復(fù),打開“啟動(dòng)和故障恢復(fù)”選項(xiàng)卡,在“寫入調(diào)試信息”下拉列表中選中“小內(nèi)存轉(zhuǎn)儲(chǔ)(xxxKB)”選項(xiàng),取消”自動(dòng)重新啟動(dòng)”的復(fù)選框,如下圖:
從圖中可以看到dump文件的默認(rèn)保存位置是在C:WINDOWSMinidump
配置WinDbg
1、下載Debugging Tools 32位(Debugging Tools 64位)并安裝,在如下圖位置只勾選“Debugging Tools for windows”:
2、開始——>所有程序——>Debugging Tools for Windows,打開WinDbg。
3、配置Windows Debugging Tool
選一個(gè)臨時(shí)目錄存放Symbol文件。比如,建立一個(gè)目錄叫C:Temp
然后,打開WinDBG,在File菜單-〉選擇Symbol File Path。在打開的對(duì)話框里輸入:
SRV*c:temp*http://msdl.microsoft.com/download/symbols
選擇OK確定
然后 file –> save wordspace
這樣WinDBG就配置好了。
注:要注意http://msdl.microsoft.com/download/symbols 是不可瀏覽的,僅適用于由調(diào)試器訪問(wèn)。
使用windbg分析Dump文件
點(diǎn)擊程序窗口的“File ——> Open Crash Dump”,打開位于系統(tǒng)盤的minidump文件夾(例:C:WINDOWSMinidump)下的以日期為文件名的.dmp文件。然后稍等片刻,等它加載符號(hào)文件。
分析完后,如圖中藍(lán)屏線部分,找到“Probably caused by”這一行,其后面的文件就是導(dǎo)致藍(lán)屏死機(jī)的程序。
另外可以看到Use !analyze -v to get detailed debugging information.字樣和 kd> 提示符。
按照提示,輸入或者單擊”!analyze -v”命令??梢钥吹礁敿?xì)的分析結(jié)果。