2009-10-08 41 views
0

我的dll被一個模塊使用,該模塊嚴重地捕獲所有異常並將其記錄到文件中。如何在處理異常時獲取崩潰轉儲?

我的問題是客戶站點中存在訪問衝突,只能在其計算機上重現,並且我希望能夠讓此客戶爲此問題生成轉儲文件。

我試圖在我的dll中生成一個AV,並使用adplus生成一個轉儲文件,但沒有創建轉儲,因爲使用我的dll的模塊抓住了AV。

所以我的問題是:

有沒有一種方法來生成即使在處理的異常崩潰轉儲文件?

感謝,

+1

Windows對吧? 。 – 2009-10-08 15:55:25

回答

2

使用ADPlus,你可以閱讀更多有關配置ADPlus的here(小型轉儲特殊例外情況)

您的配置文件將是這個樣子:

<ADPlus> 
    <Settings> 
    <RunMode>CRASH</RunMode> 
    <Option>Quiet</Option> 
    </Settings> 
    <Exceptions> 
    <Config> 
     <Code>AllExceptions</Code> 
     <Actions1>FullDump</Actions1> 
    </Config> 
    </Exceptions> 
</ADPlus> 
+0

謝謝。 我對adplus配置文件一無所知,它看起來非常有用。 – Yann 2009-10-12 07:52:01

1

對於Windows Vista SP1和更高版本,Windows錯誤報告服務可以配置爲生成崩潰轉儲每當應用程序崩潰:

下的註冊表項:

HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的Windows \ Windows錯誤報告\ LocalDumps]

定義值:

  • DumpFolder(REG_EXPAND_SZ ) - 轉儲文件的存儲位置
  • DumpType(REG_DWORD) - 2表示全部轉儲,1表示小型轉儲

這適用於32位和64位程序。請參閱http://msdn.microsoft.com/en-us/library/bb787181.aspx

+0

我在這裏看到的問題是,處理異常不會導致進程崩潰。 – uli78 2012-01-05 10:11:31