Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revisionBoth sides next revision
eclipse:debuggen [2011/08/11 09:11] – Überschrift geändert twaldeckereclipse:debuggen [2011/11/28 08:49] – [Debuggen mit Eclipse und gdb] twaldecker
Line 1: Line 1:
 ====== Debuggen mit Eclipse und gdb ====== ====== Debuggen mit Eclipse und gdb ======
 +{{ :eclipse:screenshot-debug_-_hello_world-hello_world.c_-_eclipse_-1.png?600 |}}
 +===== Verbindung zum Target =====
 +Zuerst muss mit dem Remote System Explorer eine Verbindung zum TQ-Modul aufgebaut werden. Eine Schritt für Schritt anleitung ist auf dieser Wikiseite:
  
-===== Verbindung herstellen zum TQ-Modul mit dem Remote System Explorer (RSE) ===== +[[rse|Verbindung zu TQ-Modul mit dem Remote System Explorer]].
-Mit dem ''Remote Systems'' View wird eine Verbindung zu einem Target hergestellt. Die View muss zuerst angezeigt werden. Dazu den Auswahldialog im Menü unter ''Window > Show View > Other...'' öffnen. Dort ''Remote Systems'' auswählen.+
  
-{{:eclipse:screenshot-show_remote_systems_explorer.png?nolink|}}+===== Konfiguration Eclipse gdb ===== 
 +**Voraussetzungen**: 
 +  * lauffähige Demoapplikation 
 +  * Debuggen funktioniert auf der Kommandozeile
  
-Im neu hinzugefügten Reiter Remote Systems nun eine neue Verbindung hinzufügen.+  - Das Konfigurationsfenster im Menü ''Run > Debug Configurations...'' öffnen. {{ :eclipse:screenshot-debug_configurations_.png? |}} 
 +  - Dort eine neue ''C/C++ Remote Application'' Konfiguration erstellen. 
 +  - Zuerst ganz unten als Launcher ''Select other'' auswählen. In dem erschienenen Fenster das Häckchen bei ''Use configuration specific settings'' setzen und dann den ''Standard Remote Create Process Launcher'' auswählen. 
 +  - Dann im Reiter ''Main'' als Connection die vorhin erstellte Verbindung auswählen. 
 +  - Es muss auch noch der ''Remote Absolute File Path for C/C++ Application'' angegeben werden (am besten über die Schaltfläche ''Browse...''
 +  - Die Projekt- und Applicationeinstellungen sollten richtig gesetzt sein. 
 +  - Im Reiter ''Arguments'' können zusätzliche Parameter dem zu debuggenden Programm übergeben werden. 
 +  - Im Reiter ''Debugger'' muss bei den ''Debugger Options'' im Reiter Main der GDB debugger auf den richtigen GDB in unserem Fall ''arm-linux-gdb'' gesetzt werden. {{ :eclipse:screenshot-debug_configurations_-1.png?nolink& |}} 
 +  - In den ''Debugger Options'' muss auch noch der Pfad zu den Shared Libraries des Moduls auf dem Hostsystem hinzugefügt werden. Dieser ist hier ''/opt/eldk/arm/lib''{{ :eclipse:screenshot-debug_configurations_-2.png?nolink& |}} 
 +  - Im Reiter ''Gdbserver Settings'' ist nichts zu tun. {{ :eclipse:screenshot-debug_configurations_-3.png?nolink& |}} 
 +  - Dann mit ''Apply'' die Einstellungen Speichern und mit ''Debug'' das debuggen beginnen.
  
-{{:eclipse:screenshot-remote_systems_empty.png?nolink|}}+===== Fehlerbehebung ===== 
 +==== No source available ==== 
 +Beim starten des Debugvorgangs wird der Quelltext nicht angezeigt anstelle wird eine Fehlermeldung angezeigt. "No source available for main() " 
 +{{ :eclipse:screenshot-debug_-_source_not_found.png?nolink|}}
  
 +**Ursache**: Es sind keine Debug-Symoble mit einkompiliert.
  
-Mit dem erscheinenden Assistenten wird eine neue Verbindung zum Target angelegt. Im ersten Schritt muss der Typ des Targetsystems, in unserem Fall ''Linux'' gewählt werden.+**Behebung**: im Makefile die Debug Symbole bei der Variable ''CPPFLAGS'' den Schalter ''-g'' aktivieren: 
 +''CPPFLAGS := -Wall -g''
  
-{{:eclipse:screenshot-new_connection.png?nolink&|}} +===== Quelle ===== 
- +  * http://www.embedded-linux.co.uk/tutorial/eclipse-rse
-Danach wird die Verbindungsinformation eingetragen. Als ''Host name'' muss die IP-Adresse des Targets angegeben werden. +
- +
-{{:eclipse:screenshot-new_connection1.png?nolink&|}} +
- +
-In diesem Fenster muss bei Configuration ''processes.shell.linux'' ausgewählt werden. +
- +
-{{:eclipse:screenshot-new_connection3.png?nolink&|}} +
- +
-Im nächsten Fenster muss bei Configuration ''ssh.shells'' ausgewählt werden. +
- +
-{{:eclipse:screenshot-new_connection4.png?nolink&|}} +
- +
-Im letzten Fenster muss vor dem Bestätigen mit ''Finish'' noch bei Configuration ''ssh.terminals'' ausgewählt werden. +
- +
-{{:eclipse:screenshot-new_connection5.png?nolink&|}} +
- +
-Nach erfolgreichem Abschließen des Assistenten erscheint jetzt im Remote Systems View die konfigurierte Verbindung. Im Kontextmenü der Verbindung kann man sich jetzt mit dem Target verbinden. +
- +
-{{:eclipse:screenshot-remote_connect.png?nolink&|}} +
- +
-In einem kleinen Fenster muss der Benutzername und das Kennwort eingetragen werden. Danach ist man mit dem Target verbunden und man kann z.B. eine Shell aufmachen. +
-<note>Sollte beim Verbindungsaufbau folgendende Fehlermeldung erscheinen: +
-{{ :eclipse:screenshot-rseg1066_.png?nolink& |}} +
-Dann müssen die Proxyeinstellungen überprüft und korrigiert werden. Ich habe die Proxyeinstellungen von Native zu Direct geändert.  +
-</note>+