西西軟件下載最安全的下載網站、值得信賴的軟件下載站!

首頁編程開發(fā)其它知識 → 軟件開發(fā)調試、抓取dump文件的三重境界

軟件開發(fā)調試、抓取dump文件的三重境界

相關軟件相關文章發(fā)表評論 來源:西西整理時間:2013/2/18 21:17:13字體大小:A-A+

作者:SolidMango點擊:1次評論:0次標簽: dump

  • 類型:網絡共享大。1.4M語言:中文 評分:2.1
  • 標簽:
立即下載

對于軟件開發(fā)而言,調試無疑是最重要的部分之一,而對于windows 系統(tǒng)而言,dump文件無疑是問題發(fā)生時最全面的信息,對于一些問題而言,在對的時候抓取對的.dump文件基本上就相當于解決了一大半的問題。本文由淺入深的介紹了用戶模式下抓取.dump文件的幾種方式,希望對日夜奮戰(zhàn)在加班線上的朋友有所幫助。

入門級-目標是問題發(fā)生的時候手動可以抓到dump文件

1. 當問題發(fā)生的時候使用windbg attach 到相關的進程然后使用.dump /ma 命令抓取 dump 文件。
2. 當問題發(fā)生的時候使用adplus.vbs/adplus.exe –hang 抓取相關進程的dump 文件。
入門級的方法最大的缺點就是要等到問題發(fā)生的時候才能去手動抓取.dump文件,如果問題不易重現(xiàn),那么人們就不得不坐在電腦前等待問題的發(fā)生,好慘。

進階級-目標是crash 發(fā)生的時候或者進程退出的時候可以自動抓到dump文件
1. 在問題發(fā)生的之前使用adplus.vbs/adplus.exe –crash監(jiān)控相關進程的, 值得注意的是這個方法不需要手動去抓,只要crash或者進程退出,OS會自動為我們抓取dump文件,再也不用坐在顯示器前等待了,來杯咖啡等著就行了。
2. 使用windbg –I 將windbg設置為即時調試器,這樣當問題發(fā)生的時候,windbg就會彈出來,直到你處理了為止,同樣不需要在顯示器前面等待。
生活已經很美好了,但是生活可以更美好,進階級的缺點是只能抓取crash或者進程退出的dump文件,其他情況無能為力。

高級-目標是定制在什么情況下抓取dump文件

這是最靈活的一種方式,但是也是相對最復雜的一種方式,下面為了便于說明我以一個例子來說明。
這個例子中我的目標是在notepad.exe load VERSION.dll的時候抓一個dump然后讓程序繼續(xù)執(zhí)行。
首先在gflags的debugger中配置如下腳本:
D:\Debuggers\windbg.exe -c $$><"c:\dscript.ds"
c:\dscript.ds內容如下:
sxe ld:VERSION.dll; g; .dump /ma c:\np.dmp;g;
這個時候只要有notepad.exe開始執(zhí)行,我們就會在它load VERSION.dll的時候抓取到對應的.dump 文件。
這個方法的優(yōu)勢是明顯的,幾乎任何問題都可以使用,但是它仍然有一個弊端,就是實際上進程是在調試器下運行的,對一些和性能有關的問題可能會有些影響。

總結
本文介紹的這幾種方式由淺入深,各有利弊,對于大部分的調試情況已經足夠了,希望對大家有所幫助,當然除了本文介紹的方式,大家還可以選擇其他一些工具來抓取dump文件,此處不一一列舉,另外對于kernel dump 文件的抓取,由于日常的應用開發(fā)用的不多,故本文暫不作介紹,如果感興趣的朋友多,我再寫一篇專門抓取內核dump的文章。

    相關評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經過審核才能顯示)
    推薦文章

    沒有數(shù)據