Forum: Compiler & IDEs GDB HW Debugging in Eclipse


von Sven S. (schwerminator)


Lesenswert?

Hallo zusammen,

ich versuche derzeit eine Entwicklungsumgebung für die STM32F4xx-Reihe 
zum Laufen zu bekommen. Dazu kurz die Eckdaten:

* Eclipse CDT als IDE
* GNU Tools for ARM Embedded Processors
* CoreUtils for Windows / MinGW
* OpenOCD als GDB Server

Das Kompilieren in Eclipse funktioniert bereits. Mein Problem ist nun 
das Debugging; ich habe eine Debug-Konfiguration erstellt:

* GDB Hardware Debugging
* arm-none-eabi-gdb
* TCP/IP Verbindung zum OpenOCD GDB Server
* Initialization commands: monitor reset halt
* Als Source ist der Standard ausgewählt: Projektverzeichnis (hier habe 
ich jedoch bereits experimentiert)

Das funktioniert auch soweit. Das Problem ist lediglich, dass ich nicht 
in alle Quelldateien Breakpoints setzen kann. Kurz zur Erklärung: In 
meinem Eclipse-Projekt habe ich ein paar virtuelle Ordner, die dann 
Quelldateien aus dem Dateisystem verlinken (die Dateien liegen also 
nicht im Projektordner). Daneben habe ich natürlich auch Quelldateien, 
die im Projektordner liegen. Das Setzen von Breakpoints in verlinkte 
Dateien funktioniert, in lokalen Quelldateien funktioniert das jedoch 
nicht. Ich erhalte z.B. folgende Fehlermeldung:

No source file named C:\Users\sven\workspace\LIS302DL\main.c.

Die Quelldatei liegt jedoch unter dem angegebenen Pfad. Mir ist bewusst, 
dass dies wohl ein relativ spezieller Fehler ist, aber vielleicht hat ja 
dennoch jemand eine Idee, woran das liegen könnte.

Gruß Sven

von Sven S. (schwerminator)


Lesenswert?

Ich habe das Problem jetzt lösen können; es lag an zweierlei Dingen:

* Der Debugger kommt scheinbar nicht mit virtuellen Ordnern klar, diese 
habe ich durch "echte" Ordner ersetzt und die Quelldateien nicht mehr 
nur verlinkt.
* Den Launcher habe ich auf "Standard GDB Hardware Debugging" geändert. 
Dies ging mit virtuellen Ordnern im Projekt nicht, es kam stets zu einer 
NullPointerException in Eclipse.

Alternativ zum GDB Hardware Debugging kann auch Zylin embedded debug 
verwendet werden, wie hier beschrieben: 
http://vedder.se/2012/12/debugging-the-stm32f4-using-openocd-gdb-and-eclipse 
Auch hier dürfen jedoch keine virtuellen Ordner verwendet werden.

Gruß Sven

von Dirk R. (nixtodo)


Angehängte Dateien:

Lesenswert?

Hallo Sven,

deine Erklärung mit der Unverträglichkeit der virtuellen Ordner hat mir 
sehr geholfen. Ich war seit Stunden auf der Suche nach dem Grund für die 
Eclipse NullPointerException.

Mit "echten" Ordnern Funktioniert GDB. Das ist für mich aber auch keine 
schöne Lösung. In der Eclipse Version "Kepler" kann man auch noch 
"Linked" Ordner anlegen. Mit der Default Einstellung bei "Choose file 
system:" funktioniert GDB nicht. Erst mit der Einstellung "RSE" geht GDB 
wieder. Siehe Screenshot.

Gruß Dirk

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.