GDB nach Absturz starten und nutzen



  • Hallo,
    ich nutze GDB zum debuggen. Allerdings ist es bei größeren Anwendungen wegen der langsamen Geschwindigkeit sehr nervenaufreibend.

    Deshalb starte ich die Anwendung zunächst ohne GDB. Zu Beginn der Anwendung habe ich mir ein paar Signal-Handler geschrieben, die z.B. SIGABRT und SIGSEGV abfangen.
    Wenn z.B. ein SIGABRT ausgelöst wird, rufe ich meine Methode handleAborts auf, in der ich wiederum GDB starte. GDB hängt sich an den aktuellen Prozess und hält die Anwendung an einer bestimmten Stelle an.
    Zu meinem Erstaunen habe ich für Aborts auch einen 1A Backtrace erhalten, ohne das GDB vorher lief!
    Allerdings klappt das mit SIGSEGV nicht so einfach. Ich erhalte zwar einen Backtrace, allerdings ist dieser nicht wirklich hilfreich.
    Wenn ich die Anwendung direkt aus GDB starte und den Fehler reproduziere, liefert mir GDB auch einen hilfreichen Backtrace.

    Ist mein Problem irgendwie zu lösen oder stell ich mir das zu einfach vor?


  • Mod

    Wie wäre es damit, ganz klassisch einen Coredump erstellen zu lassen und diesen mit gdb anzusehen?



  • Achso... ich vergas zu schreiben, dass ich unter anderem mit MinGW arbeite.
    Ich habe des öfteren gelesen, dass ich unter Windows kein Coredump erzeugen kann, der für GDB lesbar ist.
    Falls du doch einen Weg kennst, wäre ich dir überaus dankbar!! 🙂


Anmelden zum Antworten