Übersicht
1. Beispielprojekt
2. Eclipse Remote - Verbindung
3. Eclipse Cross Debugger
1. Beispielprojekt
Im ersten Schritt erweitern wir das beispiel Projekt um ein par Zeilen Code, welche durch eine for Schleife eine zusätzliche Ausgabe generiert. Diese können wir dann schrittweise beim Debuggen betrachten.1.1 Eclipse starten und das Projekt aus Teil 2 öffnen
1.2. Code erweitern
2. Eclipse Remote - Verbindung
Im zweiten Schritt richten wie eine Remote - Verbindung von Eclipse zum Raspberry Pi ein. Im Teil 2 hatte ich zwar beschrieben, wie mittels scp das fertige Binary auf das Raspberry Pi kopiert werden kann, für das Debuggen ist dies aber sehr umständlich. Daher nutze ich jetzt die Möglichkeiten von Eclipse, das Binary automatisch auf das Raspberry Pi zu kopieren und anschließend die Debug - Sitzung zu starten. Zusätzlich wird dazu ein Zugriff auf das Filesystem und eine Terminal - Verbindung eingerichtet.
2.1. Remote System View in Eclipse anzeigen
Zuerst müssen wir den entsprechenden View in Eclipse anzeigen, dazu unter Window -> Other auswählen:2.2. Remote Connection einrichten
Nachdem der Remote System View aktiviert wurde (ich habe diesen auf die linke Seite, neben den Projekt Explorer verschoben), kann eine neue Verbindung eingerichtet werden.
Dazu mit der Rechten Maustaste in den View klicken und New Connection wählen:
Als Type wird unter General -> Linux ausgewählt:
Jetzt muss die Verbindung entsprechend des eigenem Raspberry Pis eingerichtet werden:
- Host name: Hostname oder IP Adresse des Raspberry Pis
- Connection name: frei wählbarer, aber einmaliger Name für diese Verbindung
- Description: (optional) Beschreibung der Verbindung
Mit Klick auf Next geht es zur nächsten Seite.
Hier wählen wir ssh.files und anschließend Next:
Hier wählen wir processes.shell.linux und anschließend Next:
Auf der letzten Seite wählen wir ssh.terminals und zum Schluss Finish:
2.3. Remote Connection herstellen
Wenn die Remote Verbindung korrekt eingerichtet wurde, erscheint im Remote System View der entsprechende Eintrag mit dem Connection name (bei mir raspbian).
Jetzt können wir die Verbindung zum Raspberry Pi herstellen. Dazu mit der rechten Maustaste auf den Connection name klicken und Connect auswählen:
Anschließend müssen wir den Login des Raspberry Pis eintragen.
[Optional] Die beiden Hacken bei Save user ID und Save password setzten, damit muss der Login nicht jedesmal eingetragen werden.
2.4. Zugriff auf das Filesystem und eine Terminal - Verbindung eingerichtet.
Nach erfolgreichen Login kann im Remote Systems View unter Root auf das Filesystem des Raspberry Pis zugeriffen werden. Unter My Home hat man Zugriff auf das Homeverzeichnis des angemeldeten Nutzters (siehe Login User ID):
Durch Klick mit der Rechten Maus auf Ssh Terminals und Launch Terminal,...
...kann direkt aus Eclipse heraus auf die Console des Raspberry Pis zugreifen. Eine zusätzliche ssh Verbindung ist so nicht notwendig.
3. Eclipse Cross Debugger
Im ersten Schritt haben wir das Beispielprojekt um ein par Codezeilen zum debuggen ergänzt, im zweiten Schritt wurde die Remote Verbindung zum Raspberry Pi eingerichtet. Im dritten Schritt richten wir die Debug Konfiguration für das Eclipse Projekt ein und starten anschließend die Debug Sitzung. Dabei setzten wir in der for Schleife einen Breakpoint, an dem die Ausführung unterbrochen wird und betrachten die schrittweise Ausgabe unseres Programms auf der Konsole.
3.1 . Debugger Konfiguration
In der Eclipse Menü Leiste wählen wir das Debug Sysmbol und anschließend Debug Configurations:
Da wir den Code nicht auf dem Host, sondern auf dem Target ausführen wollen, müssen wir eine neue Konfiguration unter C/C++ Remote Application erstellen:
Die Einstellungen werden entsprechend folgender Abbildung vorgenommen:
Im Tab Debugger/ Gdbserver Settings werden folgende Einstellungen eingetragen:
- Gdbserver path: gdbserver
- Port number: 2345 (muss auf Host und Target frei sein)
Mit Klick auf Debug können wir die Debug - Sitzung starten.
3.2. Debugging Starten
Anschließend wechselt Eclipse in die besagte Debug Perspektive.
Jetzt setzten wir beim printf in der for Schleife und beim return jeweils einen Breakpoint. Dazu vor der Zeilennummer (20 bzw 23) einen Doppelklick ausführen. Der Blaue Punkt in der Zeile kennzeichnet einen gesetzten Breakpoint.
Die Ausführung des Beispiel Codes beginnen wir mit Klick auf Resume (grüner Pfeil nach rechts) bzw. durch F8.
Jetzt können wir mit Eclipse erfolgreich ein Projekt für das Raspberry Pi kompilieren, übertragen und ausführen.