用CrashDump定位應用錯誤

2021-09-01 16:29:08 字數 1199 閱讀 4060

用crashdump定位應用錯誤

通常,在驅動的世界裡面,一旦我們的驅動有bug,導致系統藍屏,往往我們需要靠os生成的crashdump檔案來進行事後分析。但是事實上我們針對應用程式同樣也能生成crashdump。在某些情形下,我們必須在應用中主動生成crashdump,因為抓取crash條件的時機稍縱即逝,再也難以復原crash場景。本文要介紹的乃是

bool winapi minidumpwritedump(

__in handle hprocess,

__in dword processid,

__in handle hfile,

__in minidump_type dumptype,

__in pminidump_exception_information exceptionparam,

__in pminidump_user_stream_information userstreamparam,

__in pminidump_callback_information callbackparam);

這個函式。通過運用這個函式,我們能在異常發生的時間點將整個應用的執行上下文捕捉下來。從而提供異常發生時刻的重要情報資訊。

這個函式的用法大致如下

intwinapi createdump(exception_pointers* pexceptionpointers)

else

exitprocess(pexceptionpointers->exceptionrecord->exceptioncode);

<-

異常都發生了,還是不要讓應用繼續跑下去為妙。不然出其他的婁子就更難判斷了。}

上面介紹的函式如何觸發呢?比較通俗的寫法是

lptop_level_exception_filter defaultexceptioncallback = null;

intmain(int argc,char **argv)

在所有人都不接管異常的情況下,createdump會得到觸發,這麼一來,異常的場景就能**捉到。哪些非常難以再現的場景就有辦法得到重現或者定位。

最近數年間的現場緊急支援中,有95%以上的case通過應用崩潰時刻的dump檔案而被定位。可以說是非常高效的定位問題所在的方法之一。:)

本文由inside programming(lu0s1.3322.org

用CrashDump定位應用錯誤

用crashdump定位應用錯誤 通常,在驅動的世界裡面,一旦我們的驅動有bug,導致系統藍屏,往往我們需要靠os生成的crashdump檔案來進行事後分析。但是事實上我們針對應用程式同樣也能生成crashdump。在某些情形下,我們必須在應用中主動生成crashdump,因為抓取crash條件的時...

詳解定位與定位應用

定位一直是web標準應用中的難點,如果理不清楚定位那麼可能應實現的效果實現不了,實現了的效果可能會走樣。如果理清了定位的原理,那定位會讓網頁實現的更加完美。定位的定義 在css中關於定位的內容是 position relative absolute static fixed static 沒有特別的...

詳解定位與定位應用

定位一直是web標準應用中的難點,如果理不清楚定位那麼可能應實現的效果實現不了,實現了的效果可能會走樣。如果理清了定位的原理,那定位會讓網頁實現的更加完美。定位的定義 在css中關於定位的內容是 position relative absolute static fixed static 靜態 沒有...