Wie richte ich gdb auf Fenster, so dass ein Programm mit Assertion Fehler nicht beendet werden kann? Ich beabsichtige, die Stack-Trace und Variablen im Programm zu überprüfen.Debuggen von MinGW-Programm mit gdb unter Windows, nicht bei Assert-Fehler zu beenden
Zum Beispiel läuft dieses test.cpp Programm kompiliert mit MinGW 'g++ -g test.cpp -o test
' in GDB:
#include <cassert>
int main(int argc, char ** argv) { assert(1==2); return 0; }
Gibt:
$ gdb test.exe
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-mingw32"...
(gdb) r
Starting program: f:\code/test.exe
[New thread 4616.0x1200]
Error: dll starting at 0x77030000 not found.
Error: dll starting at 0x75f80000 not found.
Error: dll starting at 0x77030000 not found.
Error: dll starting at 0x76f30000 not found.
Assertion failed: 1==2, file test.cpp, line 2
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Program exited with code 03.
(gdb)
Ich mag wäre in der Lage sein, um das Programm zu stoppen Beenden sofort, wie Visual Studio Debugger und gdb unter Linux tut es. Ich habe eine Suche durchgeführt und einige Sachen über Trapping-Signale gefunden, aber ich finde keinen guten Beitrag darüber, wie ich gdb dafür einrichten kann.
Wie kann ich aufhören zu fragen: Funktion "Exit" nicht in geladenen Symbolen definiert. Den Breakpoint für die zukünftige Belastung der gemeinsam genutzten Bibliothek ausstehend machen? (y oder [n]) y Haltepunkt 1 (Ausgang) steht an. – devil