GDB - how, um herauszufinden, von wo das Programm beendet wird
Beim Debuggen eines Programms im GDB, bekomme ich eine unerwartete "program exited normally". Also ich Frage mich, ob gibt es eine Möglichkeit, herauszufinden, von wo (welche Zeile) das Programm beendet.
Programm ist multi-threaded, wenn diese Angelegenheiten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Regel mit dem folgenden Befehl, wenn die Anwendung beendet:
Natürlich, wenn Sie wollen, um zu wissen, die genaue Linie müssen Sie Ihre Anwendung kompilieren mit debug-Symbolen, d.h.
-g
Könnten Sie versuchen, den GDB Befehl
break exit
um einen Haltepunkt an der Ausfahrt(2) library-Aufruf zu. Wenn das nicht bekommen, was Sie brauchen, vielleichtbreak _exit
. Möglicherweise müssen Sie starten Sie Ihr Programm mit 'sta', bevor man die letztere Haltepunkt zu nehmen. In beiden Fällen sollten Sie dann in der Lage sein zu verwenden, diewhere
Befehl aus, um einen stack-trace, die zeigen, wo Sie waren, als das Programm beschlossen, um zu beenden.Legen Sie einen Haltepunkt auf _exit und dann untersuchen Sie den stack.