西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

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

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

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

作者:SolidMango點(diǎn)擊:1次評論:0次標(biāo)簽: dump

  • 類型:網(wǎng)絡(luò)共享大。1.4M語言:中文 評分:2.1
  • 標(biāo)簽:
立即下載

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

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

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

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

高級-目標(biāo)是定制在什么情況下抓取dump文件

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

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

    相關(guān)評論

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

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

    熱門評論

    最新評論

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

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

    沒有數(shù)據(jù)