仅适用于StackOverflow-exception,我在从装载了CLR的进程配置AddVectoredExceptionHandler时努力创建MiniDump。CLR/VectoredExceptionHandler/StackOverflowException/MiniDumpWriteDump
我的处理程序被调用,将.dmp文件被创建,但随后MiniDumpWriteDump失败。
我没有问题,写了其他异常,例如转储AccessViolation。如果CLR未加载并且发生了StackOverflow-exceptin,那么我也会成功写入转储。
在https://github.com/NicolaiNyberg/DbgSvcExtension 上提供示例代码,其中CrashHandler dll项目配置处理程序,SoexCh.Cs是从C#中调用的示例。
我的问题是:一旦CLR加载,可防止在StackOverflow上的异常的情况下编写一个小型转储过程中有什么相对于未处理的异常处理程序会发生什么?
没有足够的堆栈空间放置,使MiniDumpWriteDump()来完成其工作。可靠的小型生产需要一个“警戒过程”。像DebugDiag一样。 –
感谢汉斯。我刚刚阅读了你的答案,并且我意识到我的答案/解决方案是实施你的建议。 –