Windows藍屏dump文件查看器(轉)


Windbg-分析Windows藍屏原因利器[轉]
下載地址
先聲明下,雖然用windbg診斷藍屏之前網絡上已經有人發過教程了,但就我而言, 學會使用windbg來診斷藍屏也算是自己的原創吧。以前看一個微軟專家的視頻(微軟專家張銀奎老師的《如何診斷和調試藍屏錯誤》),專家提到可以用 windbg來調試dump文件,當時我就想能不能只關注是什么文件導致的系統崩潰,然后對症下葯。后來通過一系列的實驗,自己摸索出了用windbg診 斷藍屏的方法,成功解決了包括KIS7.0插件、QQ插件、迅雷插件導致的藍屏。廢話就不多說了,本文沒什么高深的技術,只是一些簡單的操作,但應該可以 讓身陷藍屏困擾中的朋友帶來些變化,起碼能讓你知道是誰在搗亂! 
  
   直觀地說,藍屏是系統崩潰。操作系統在遇到致命錯誤導致崩潰時,並不是直接掛掉,而是會記錄下當時內存中的數據,將其存儲成為dump文件,並用一串藍屏代碼向用戶做出提示。 
  
   好了,大家跟我一起設置吧。 
  
   第一步,打開電腦的dump文件存儲功能。在“我的電腦”上右鍵——屬性——高級   

Windows藍屏dump文件查看器 - 香皂 - 香皂

 

Windows藍屏dump文件查看器 - 香皂 - 香皂



   選好后點確定,下次再出現藍屏時,系統就會存儲下dump文件,一般存放位置在系統盤的minidump文件夾下。(建議在該文件夾上點右鍵——屬性——發送到——桌面快捷方式,以后就能在桌面上找到該文件夾了) 

第二步,下載安裝windbg 
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#a 
這個過程就不說了,隨便選一個下載,安裝時,一路“下一步”就行了。

第三步,使用windbg診斷藍屏錯誤 
   上面兩步設好后,就想辦法開始“制造”藍屏吧,平時怎么用會出現藍屏就拼命用直到出現藍屏,嘿嘿。 
  
   藍屏后重啟,在minidump文件夾下會出現一個以日期為文件名的東東,那就是我們要的了。接下來打開windbg,點屏幕左下的 “開始”,如下圖:

Windows藍屏dump文件查看器 - 香皂 - 香皂



軟件啟動點File——Open Crash Dump,如圖: 

Windows藍屏dump文件查看器 - 香皂 - 香皂



然后找到你的minidump文件夾,dump文件一般是"時間.dmp"如圖:

Windows藍屏dump文件查看器 - 香皂 - 香皂



打開后就會自動分析了。分析完后,看最下面,找到3.probably caused by這一行,如圖: 

看,出來了吧那個myfault.sys文件就是罪魁禍首。 

再補充點東西,

導入dump文件分析完畢后,不要關閉,在后面輸入 !analyze -v ,這個命令可以查看dump文件的詳細情況,如圖:

Windows藍屏dump文件查看器 - 香皂 - 香皂



對普通用戶有用的還有下面一些信息:


第一行 DEFAULT_BUCKET_ID: 錯誤類型,這個懂點編程和操作系統知識的朋友用得上點
第 三行 PROCESS_NAME: XXX.exe 這個是導致錯誤的進程,查出是什么文件導致的藍屏后,再看這里就知道是誰調用了錯誤文件,比如你查出123.sys導致藍屏,但你查不到123.sys是 哪個程序調用的,就可以用這個方法來看看,比如查出了是456.exe,你就可以在機子上或者網上搜索相關信息了。


好了,到這里 相信大家已經學會怎么找到導致系統藍屏的文件了,接下來怎么辦呢?上網查資料,把導致藍屏的那個文件名在網上搜索,基本就知道是什么文件了,一般網上也有 相關的解決辦法,看看要刪除些什么插件、打什么補丁或者重裝軟件等等。導致問題的不一定是.sys文件也有可能是.dll,這篇文章只能幫你找出導致藍屏 的元凶,具體的解決辦法得上網查。如果是查不到什么信息的.sys或者.dll就要當心了,有可能是病毒或者rootkit

附:
windbg基本調試命令:
r 可以顯示系統崩潰時的寄存器,和最后的命令狀態。
dd 顯示當前內存地址,dd 參數:顯示參數處的內存。
u 可以顯示反匯編的指令
!analyze -v 顯示分析的詳細信息。
kb 顯示call stack 內容
.bugcheck 可以顯示出錯的代碼

windbg診斷藍屏的一點補充

導入dump文件分析完畢后,不要關閉,在后面輸入!analyze -v,這個命令可以查看dump文件的詳細情況,如圖:

Windows藍屏dump文件查看器 - 香皂 - 香皂




對普通用戶有用的還有下面一些信息:

Windows藍屏dump文件查看器 - 香皂 - 香皂



第一行 DEFAULT_BUCKET_ID: 錯誤類型,這個懂點編程和操作系統知識的朋友用得上點
第 三行 PROCESS_NAME: XXX.exe 這個是導致錯誤的進程,查出是什么文件導致的藍屏后,再看這里就知道是誰調用了錯誤文件,比如你查出123.sys導致藍屏,但你查不到123.sys是 哪個程序調用的,就可以用這個方法來看看,比如查出了是456.exe,你就可以在機子上或者網上搜索相關信息了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM