【发布时间】:2013-03-08 20:16:58
【问题描述】:
我有一个调用混合模式 C++ dll 的 C# 应用程序。我通过 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps 启用了转储生成。
当 dll 访问无效内存时,运行时会将 win32 异常转换为托管 System.AccessViolationException,并在生成转储之前展开堆栈,从而破坏本机堆栈信息。根据 msdn 的说法,我可以在 .net 获取异常并手动生成转储之前自己捕获异常,但是在已经损坏的程序上运行代码可能会挂起它。那么,如何禁用 SEH 翻译呢?
【问题讨论】:
标签: exception access-violation dump mixed-mode