Zur Zeit rufen wir MiniDumpWriteDump
mit den MiniDumpNormal | MiniDumpWithIndirectlyReferencedMemory
Flags. Das funktioniert gut für interne Builds in der Debug-Konfiguration, gibt aber nicht so viele Informationen wie in der Release-Konfiguration.Welche Einstellungen sollte ich mit Minidumps verwenden?
In Release enthalten die Minidump-Daten genügend Stack-Informationen für den Debugger, um herauszufinden, wo im Code der Fehler aufgetreten ist, aber keine anderen Daten. Ich meine nicht einfach, dass lokale Variablen fehlen, weil sie optimiert sind, wie man es von einem Release-Build erwartet - ich meine, es gibt nichts nützliches außer dem Call-Stack und der aktuellen Code-Zeile. Keine Register, keine Einheimischen, keine Globals, keine Objekte, auf die die Einheimischen zeigen - nichts. Wir bekommen nicht einmal "das", was uns erlauben würde, das aktuelle Objekt zu betrachten. Das war der Punkt der Verwendung von MiniDumpWithIndirectlyReferencedMemory
- es sollte Speicher enthalten, auf den von Einheimischen und Stack-Variablen verwiesen wird, scheint aber nicht.
Welche Flags sollten wir stattdessen verwenden? Wir wollen nicht MiniDumpWithFullMemory
verwenden und 600MB + Dumps generieren, würden aber gerne die Dumps etwas über die 90KB hinaus erweitern, die wir momentan bekommen, wenn es darum geht, nützlichere Daten zu bekommen. Vielleicht sollten wir MiniDumpWithDataSegments
(globals) oder ... verwenden?
Welche Art von Ausnahme ist aufgetreten, um Ihr Programm zu stürzen? – HelloWorld