仅对于StackOverflow异常,我在从加载了CLR的进程配置AddVectoredExceptionHandler时,很难创建一个MiniDump。
调用我的处理程序,创建.dmp文件但MiniDumpWriteDump失败。
我为其他例外编写转储没有问题,例如AccessViolation。如果没有加载CLR并且发生StackOverflow-exceptin,那么我也会成功写入转储。
https://github.com/NicolaiNyberg/DbgSvcExtension上提供了示例代码 CrashHandler DLL项目配置处理程序的位置,SoexCh.Cs是从C#调用它的一个例子。
我的问题是:加载CLR后,未处理的异常处理程序会发生什么情况,以防止进程在发生StackOverflow异常时编写小型转储?
答案 0 :(得分:0)
将解决方案从问题转移到答案:
答案/解决方案:为了使MiniDumpWriteDump从一个破碎的堆栈(StackOverflow-exception)成功,那么它应该从一个从ExceptionHandler发出信号的工作线程调用。 CrashHandler已经使用此实现进行了更新。