Debugging in C und C++ Programmen unter Eclipse

C/C++ Debugging mit CDT unter Eclipse
Bevor Sie mit dem Debuggen beginnen können, müssen Sie eine compilierbare Applikation erstellen,
also eine Applikation, die keine Syntaxfehler mehr enthält.
Sie können die Applikation kompilieren, indem Sie den Quelltext mit File->Save speichern und auf
den Menüpunkt Project -> Build All klicken, oder Eclipse kompiliert Ihre Applikation nach dem
Speichern des Quelltexts automatisch, wenn die Option Project -> BuildAutomatically eingeschaltet
ist.
Save
Build All
Binary
Build Automatically
Breakpoint
Markierun
gAutomati
cally
Wurde die Applikation fehlerfrei compiliert, so wird die ausführbare Datei auch im Project Explorer
unter Binary dargestellt.
Sie können einen Breakpoint setzen oder löschen, indem Sie in den linksbündigen, hellgrau
dargestellten Fensterrand des Quelltextfensters doppelklicken. Klicken Sie dabei in der Höhe jener
Zeile in das linken Band, auf der das Programm später unterbrochen werden soll.
Ein aktiver Breakpoint wird durch einen kleinen hellblauen Punkt angezeigt.
Gesetzte Breakpoints lassen sich durch Anklicken mit der rechten Maustaste und Disable
Breakspoints und Enable Breakpoints aktivieren bzw. deaktivieren.
DI(FH) Roland J. Graf
FH Salzburg / ITS
Seite 1/5
Sie können auch mehrere Breakpoints setzen und jederzeit, auch während des Programmablaufs
ändern bzw. deren Eigenschaften an Ihre Anforderungen anpassen.
Vor der ersten Debugging Session müssen Sie Eclipse mitteilen, dass Sie Ihre Applikation als Lokale
C/C++ Applikation debuggen wollen. Klicken Sie dafür mit der rechten Maustaste auf die ausführbare
Applikation im Process Explorer unter dem Ordner Binary und wählen Sie weiters den Menüpunkt
Debug As -> Debug Local C/C++ Application.
Auswahl des Applikationstyps
Bei der Frage nach dem Debugger wählen Sie den gdb Debugger und bestätigen Sie Ihre Eingabe mit
OK.
Auswahl des Debuggers
DI(FH) Roland J. Graf
FH Salzburg / ITS
Seite 2/5
Nun wechselt Eclipse in die Debugging Perspektive (bestätigen Sie eine etwaige Anfragen
diesbezüglich mit OK) und startet Ihre Applikation über den Debugger.
Aktuelle Perspektive
Variablen
Lokale Variablen
Debug View mit Call Stack
Cursor
Per Default steht Ihre Applikation nun in der ersten ausführbaren Programmzeile Ihrer Applikation
und stoppt die Ausführung. Ein Cursor, dargestellt mit einem hellblauen Pfeil, steht in jener Zeile, in
der Ihre Applikation gestoppt wurde. Die Quelltextzeile ist zudem hellgrün hervorgehoben.
Über dem Quelltext wird im Debug View der Call Stack der laufenden Applikation gezeigt. Im obigen
Beispiel sieht man beispielsweise, dass die Applikation gerade in der Funktion main in der Zeile 22
steht.
Rechts davon werden in der Variables View die lokalen Variablen der aktuellen Funktion angezeigt.
Debugging Toolbar
Über den Toolbar im Debug View oder die Funktionstasten kann die weitere Ausführung der
Applikation gesteuert werden. Resume (F8) führt die Applikation bis zum nächsten Breakpoint aus.
DI(FH) Roland J. Graf
FH Salzburg / ITS
Seite 3/5
Terminate bricht die Ausführung der Applikation ab. Step Into (F5) führt die Applikation zeilenweise
aus, wobei Funktionen die aufgerufen werden schrittweise durchlaufen werden. Stop Over (F6) führt
die Applikation zeilenweise aus, aufgerufene Funktionen werden aber nicht schrittweise durchlaufen
sondern in einem Schritt durchlaufen.
Stoppt Ihre Applikation, so wird der Inhalt einer Variablen in einem Tooltip angezeigt, wenn Sie mit
Mauszieger einige Sekunden über einer Variablen stehen.
Tooltip zeigt Wert der Variablen
Zusätzlich können Sie jederzeit den Wert einer Variable im Variables View ändern.
Änderung einer Variable
Möchten Sie einen Breakpoint mit einer Bedingung verknüpfen, so können Sie dies durch einen Klick
mit der rechten Maustaste auf den blauen Breakpoint-Punkt und der Auswahl des Menüpunkts
Breakpoint Properties… einstellen.
DI(FH) Roland J. Graf
FH Salzburg / ITS
Seite 4/5
Obige Einstellung unter Condition würde beispielsweise bewirken, dass der Programmablauf am
ausgewählten Breakpoint nur dann unterbrochen wird, wenn die Variable i den Wert 5 hat. Ignore
Count gibt an, wie oft der Breakpoint ignoriert wird, bevor die Applikation am ausgewählten
Breakpoint unterbrochen wird.
Sie können nach dem Debuggen jederzeit wieder in die gewohnte C/C++ Perspektive
zurückwechseln, indem Sie die C/C++ Perspektive über das entsprechende Control rechts oben im
Eclipsefenster auswählen. Ebenso können Sie jederzeit von der C/C++ in die Debug Perspektive
wechseln.
Perspektive wechseln
Perspektive öffnen
DI(FH) Roland J. Graf
FH Salzburg / ITS
Seite 5/5