如何调试/缓解无法捕获的异常

时间:2013-10-16 05:15:04

标签: c# c++ native-code unhandled-exception

因此,对于一个项目,我必须使用以非托管C ++编写的臭名昭着的容易出错的GDAL(http://www.gdal.org/)库(实际上我正在使用C#绑定)。问题有时是库炸弹和崩溃vhost32.exe进程。我无能为力。空的catch块对我没有好处,甚至没有引发AppDomain.CurrentDomain.UnhandledException。

抛出的异常是

  

RASTER.exe中0x77B9AA3C(ntdll.dll)的未处理异常:0xC0000374:堆已损坏(参数:0x77BAFE38)。

很明显,这个异常是不可恢复的,Windows会关闭我的进程。到现在为止还挺好。现在的问题是,我从哪里开始?我不希望整个过程被杀死只是因为对错误库的调用失败。我有什么选择?产生第二个过程并使用命名管道进行进程间通信?这仍然意味着其他进程崩溃,“Windows正在检查问题的解决方案......”弹出窗口。不好。不幸的是,对于我需要的功能,除了该库之外别无选择。

<gcConcurrent enabled="false" />
<legacyCorruptedStateExceptionsPolicy enabled="true" />
我的App.config中的

不会改变任何东西。也没有装饰用[HandleProcessCorruptedStateExceptions]属性轰炸的方法。

我能做些什么吗?

0 个答案:

没有答案
相关问题