Ich habe hier ein Problem vom Typ "Schroedinger's Cat" - mein Programm (eigentlich die Testsuite für mein Programm, aber dennoch ein Programm) stürzt ab, aber nur, wenn es im Release-Modus erstellt wurde und nur, wenn es über die Befehlszeile gestartet wird . Durch das Debuggen von Höhlenmenschen (dh böse printf () - Nachrichten überall) habe ich die Testmethode ermittelt, bei der der Code abstürzt, obwohl der tatsächliche Absturz leider in einem Destruktor zu passieren scheint, da sich die letzten Trace-Nachrichten befinden, die ich sehe andere Destruktoren, die sauber ausgeführt werden.
Wenn ich versuche, dieses Programm in Visual Studio auszuführen, stürzt es nicht ab. Gleiches gilt beim Starten von WinDbg.exe. Der Absturz tritt nur beim Starten über die Befehlszeile auf. Dies geschieht übrigens unter Windows Vista, und leider habe ich momentan keinen Zugriff auf einen XP-Computer, auf dem ich testen kann.
Es wäre wirklich schön, wenn ich Windows dazu bringen könnte, einen Stack-Trace auszudrucken, oder etwas anderes, als das Programm einfach so zu beenden, als ob es sauber beendet worden wäre. Hat jemand einen Rat, wie ich hier aussagekräftigere Informationen erhalten und hoffentlich diesen Fehler beheben kann?
Bearbeiten: Das Problem wurde in der Tat durch ein außerhalb der Grenzen liegendes Array verursacht, das ich in diesem Beitrag ausführlicher beschreibe . Vielen Dank an alle für Ihre Hilfe bei der Suche nach diesem Problem!