問一下如何在excel 的com加載項發生未處理例外時,生成dmp檔案。我有嘗試過使用SetUnhandlExceptionFilter,但是每次都是先崩潰,設定的回呼函式沒有回應到。參考的博客鏈接如下:https://blog.csdn.net/hiwubihe/article/details/52648002。自己實作的exe能夠生成崩潰包,但是在excel的com加載項中沒有作用
uj5u.com熱心網友回復:
try/catch()不行嗎?uj5u.com熱心網友回復:
我們希望的是,當有我們未知的例外發生時,我們能夠生成對應dmp檔案,然后利用這個dmp檔案進行分析。uj5u.com熱心網友回復:
沒有人知道嗎?我們創建了一個dll,該dll被excel加載了,但是崩潰時例外先被excel捕獲了。我們希望該訊息能夠被我們的dll捕獲uj5u.com熱心網友回復:
SetUnhandlExceptionFilter 的句柄可能會被修改,可以試試 __try __except 自己捕獲 SEH例外 ,然后 MiniDumpWriteDump 輸出 可以除錯的奔潰日志
uj5u.com熱心網友回復:
謝謝,我之前嘗試了這個方法是有效的。但是有一個問題或者說不方便的地方,__try __except里面的代碼不允許有區域變數的定義,例如:定義一個CString變數,都會編譯失敗。必須封裝成一個函式,然后放入__try 里面。有什么方法可以讓他允許有區域變數的定義嗎?uj5u.com熱心網友回復:
再封裝一次函式即可xx fun(xx ) { xxx xxx }
__try { fun() } __except(xxx)
uj5u.com熱心網友回復:
謝謝,這個方法我之前試了,只是如果代碼較多的話,每一個函式都重新封裝一次感覺比較麻煩。有沒有其他的好方法轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/30235.html
標籤:進程/線程/DLL
上一篇:筆記(計算機網路的分類)
