Der GNU Debugger

Obwohl machen

automatisiert den Prozess ein Linux-Programm zu bauen, dass ein Teil der Programmierung die wenigsten Sorgen ist, wenn ein Programm nicht richtig funktioniert oder wenn ein Programm beendet wird plötzlich mit einer Fehlermeldung. Sie benötigen einen Debugger, die Ursache von Programmfehlern zu finden. Linux enthält gDB - Der vielseitige GNU Debugger mit einer Kommandozeilen-Schnittstelle.

Wie jeder Debugger, gDB können Sie typische Debugging-Aufgaben, wie die folgenden ausführen:

  • Legen Sie einen Haltepunkt, so dass das Programm zu einer bestimmten Linie hält.

  • Beobachten Sie die Werte der Variablen im Programm.

  • Schritt für Schritt durch das Programm eine Zeile zu einem Zeitpunkt.

  • Ändern Variablen in einem Versuch, Fehler zu korrigieren.

Das gDB Debugger kann C und C ++ Programme debuggen.

Vorbereiten eines Programm zu debuggen

Wenn Sie ein Programm zu debuggen, indem Sie gDB, Sie müssen sicherstellen, dass der Compiler und Orte erzeugt in der ausführbaren Debugging-Informationen.

Die Debug-Informationen enthält die Namen der Variablen in Ihrem Programm und die Abbildung von Adressen in der ausführbaren Datei zu Codezeilen in der Quelldatei. gDB benötigt diese Informationen, um seine Funktionen, wie Anhalten nach der Ausführung eine bestimmte Zeile des Quellcodes durchführen.

Um sicherzustellen, dass die ausführbare Datei richtig für das Debuggen vorbereitet ist, verwenden Sie die -G Option mit GCC. Sie können durch die Definition der Variable diese Aufgabe übernehmen CFLAGS in dem Make-Datei wie

CFLAGS = -g

Laufen gDB

Der häufigste Weg, um ein Programm zu debuggen zu laufen gDB indem Sie den folgenden Befehl:

gdb progname

progname ist der Name der ausführbaren Datei des Programms. Nach progname läuft, gDB zeigt die folgende Meldung an und fordert Sie auf einen Befehl:

GNU gdb (GDB) 7.5.91.20130417-cvs-ubuntuCopyright (c) 2013 Free Software Foundation, Inc.License GPLv3 +: GNU GPL Version 3 oder höher ___This ist freie Software: Sie sind frei, sie zu ändern und zu verteilen it.There ist KEINE GARANTIE , in dem gesetzlich zulässigen Umfang. Geben Sie "Show Kopieren" und "Show-Garantie" für den Daten, GDB wurde als konfiguriert "i686 - linux-gnu" Anweisungen .Für Bug-Reporting finden Sie unter: http: //gnu.org/software/gdb/bugs/. (gDB)

Sie können eingeben gDB auf die Befehle (gDB) Prompt. Ein nützlicher Befehl, Hilfe, zeigt eine Liste von Befehlen, wie die nächste Auflistung zeigt:

(GDB) HilfeListe der Klassen von Befehlen: Aliase - Aliases anderer commandsbreakpoints - Making Programmhalt bei bestimmten pointsdata - Prüfungsdatenfiles - Festlegen und Prüfung filesinternals - Wartung commandsobscure - Obscure featuresrunning - Betrieb des programstack - Die Untersuchung der stackstatus - - Status inquiriessupport - Unterstützung facilitiestracepoints - Tracing der Programmausführung ohne Anhalten der programuser definierten - Benutzerdefinierte commandsType "help", gefolgt von einem Klassennamen für eine Liste der Befehle in diesem class.Type "helfen alle" für die Liste von Befehlsnamen für die vollständige documentation.Command Namen Abkürzungen erlaubt, wenn eindeutig gefolgt aller commands.Type "help". (gDB)

Beenden gDB, Art q und drücken Sie die Eingabetaste.

Menü