用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 靜態 沒有...