Warum sollte der gdb hängen?

Ich habe eine Anwendung, die ich bin debugging und ich versuche zu verstehen, wie gdb arbeiten und ich bin deshalb nicht in der Lage, Schritt durch die Anwendung manchmal. Das problem, das ich erlebe, ist, dass gdb hängen und der Prozess, mit dem es verbunden ist wird Sie in einen untergegangenen Staat, wenn ich einen Schritt durch das Programm. Nach der gdb hängt sich auf und ich muss es töten, um frei das terminal (Strg-C funktioniert nicht, ich habe das aus einem anderen terminal-Fenster, indem man die Prozess-id für die gdb-Sitzung und mit kill -9).

Ich vermute, dass der gdb hängt, weil es warten auf die Anwendung zu stoppen, bei der nächsten Anweisung und irgendwie ist die Anwendung fertigen Ausführung ohne gdb Identifizierung dieser. Aber das ist nur Spekulation von meiner Seite aus das Verhalten, das ich beobachtet habe bisher. Also meine Frage ist, ob jemand gesehen hat, diese Art von Verhalten vor und/oder empfehlen konnte, was die Ursache sein könnte. Ich denke, dass könnte mir helfen, mich zu verbessern, meine debugging-Strategie.

Falls es wichtig ist ich bin mit g++ 4.4.3, gdb 7.1, läuft auf Ubuntu 10.04 x86_64.

  • Gibt es eine minimale Testfall, den Sie geben können? Ich meine, wie geschrieben, die sehr schwer zu beantworten, warum es geschehen könnte—anders als "sein könnte, weil gdb hat einen bug".
  • danke für die Anregung. Jetzt hat die Anwendung eine Menge code für die Bibliothek, aber ich werde sehen, wenn ich kann machen Sie einen kleinen test case, die ich posten könnte als ein Beispiel.
  • Ich würde empfehlen, mit einer neueren gdb. Aktuelle version ist 7.3 und Sie haben eine Menge Fortschritte. (und BTW, mit einem neueren g++ ie 4.6.2 wäre auch hilfreich, da GCC auch Fortgeschritten auf debugging-Informationen).
  • Ich bin mit dem, was installiert werden mit dem Ubuntu 10.04 LTS release, und ich bin wahrscheinlich nicht aktualisieren, bis 12.04 ist raus und getestet, mit der Systeme, die wir verwenden. Aber das testen mit einer neueren version von gdb ist eine gute Idee für die überprüfung der spezifischen problem sehe ich nur für den Fall, es ist ein Fehler mit der gdb. Also danke für den Vorschlag ich werde versuchen, dass mit einem der Systeme, die ich verwenden kann.
  • danke für die Anregung. Ich habe endlich um zu versuchen gdb 7.4, und es scheint, dass das problem behoben, ich hatte also denke ich, gab es einige Fehler, die bereits gelöst wurden.
Schreibe einen Kommentar