2016-04-22 6 views
0

Ich versuche herauszufinden, warum eine WPF-App beim Schließen nicht sofort beendet wird. Unter Verwendung des Prozess-Explorers habe ich herausgefunden, dass WerFault.exe beim Beenden gestartet wird, was darauf hindeutet, dass etwas während des Teardowns abstürzt, vielleicht ein Destruktor oder ein Dispose, der fehlschlägt. Dies begann, als ich kürzlich zu VS2015 wechselte. Ich verwende Windows 8.Debugging-Absturz beim App-Beenden (WPF)

Meine Frage ist: Wie kann ich herausfinden, was das eigentliche Problem ist? Irgendeine Möglichkeit, ein Crash-Log für WerFault.exe zu finden? Ich habe Hunderte von Destruktoren und Dispose-Methoden, daher ist es schwierig, Breakpoints in alle zu setzen. Jede andere Möglichkeit, diese Art von Fehlern in VS zu erfassen?

Der Exit-Code lautet -1073740791, der "einen Fehler in der ausgeführten Software anzeigt, der einen Stapelüberlauf verursacht, der zu einer abnormalen Beendigung der Software führt". Aber wo?

Einige weitere Informationen aus dem Ereignisprotokoll:

Fehlgeschlagene Modulname: ucrtbase.DLL, Version: 10.0.10240.16390, Zeitstempel: 0x55a5b718

Ausnahmecode: 0xc0000409

Fehler Offset: 0x0000000000065a4e

enter image description here

+0

Haben Sie versucht, JIT zu debuggen? Gibt es einen Debugger-Wert unter "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AeDebug"? – qxg

Antwort

0

Sie versuchen user mode dumps ermöglichen könnte:

  1. der Registrierung HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
  2. Innerhalb LocalDumps Schlüssel erstellen, erstellen Sie einen Schlüssel, der Name Ihrer ausführbaren
  3. Innerhalb der Schlüssel, den Sie gerade erstellt haben, legen Sie die Werte von DumpFolder, DumpCount, DumpType und CustomDumpFlags als benötigt (Sie sollten auf jeden Fall DumpType auf 2 für vollständige Dumps setzen, sonst denke ich nicht, dass genug Informationen erfasst werden, um einen verwalteten Dump zu debuggen).

Sobald Sie dies getan haben, wann immer die ausführbare Datei eine Abbilddatei abstürzt wird in den von DumpFolder (oder %LOCALAPPDATA%\CrashDumps Standardeinstellung) angegebenen Ordnern erstellt werden.

Verwandte Themen