Nur für StackOverflow-Ausnahme, ich habe Schwierigkeiten, eine MiniDump beim Konfigurieren von AddVectoredExceptionHandler von einem Prozess, der die CLR geladen hat, zu erstellen.CLR/VectoredExceptionHandler/StackOverflowException/MiniDumpWriteDump
Mein Handler wird aufgerufen, die .dmp-Datei wird erstellt, aber dann schlägt MiniDumpWriteDump fehl.
Ich habe kein Problem, den Dump für andere Ausnahmen, z. Zugriffsverletzung. Wenn die CLR nicht geladen ist und ein StackOverflow-exceptin auftritt, dann bekomme ich auch den Dump erfolgreich geschrieben.
Beispielcode wird unter https://github.com/NicolaiNyberg/DbgSvcExtension bereitgestellt, wobei das CrashHandler-DLL-Projekt die Handler konfiguriert und SoexCh.Cs ein Beispiel dafür ist, dass es von C# aufgerufen wird.
Meine Frage ist: Was passiert in Bezug auf unbehandelte Ausnahme-Handler, sobald die CLR geladen ist, die verhindert, dass der Prozess einen Mini-Dump im Falle einer StackOverflow-Ausnahme schreibt?
Es ist nicht genügend Stapelspeicher verfügbar, damit MiniDumpWriteDump() seine Aufgabe erfüllen kann. Zuverlässige Minidump-Generierung erfordert einen "Guard-Prozess". Wie DebugDiag. –
Danke Hans. Ich habe Ihre Antwort gelesen und festgestellt, dass meine Antwort/Lösung eine Implementierung dessen ist, was Sie vorschlagen. –