gdb kann Quelldatei nicht laden?

8
  1. Ich benutze einfach arm-linux-gcc kompiliere eine einfache c-Datei auf dem Host (debian i386) mit -g .
  2. Kopieren Sie dann die Datei a.out auf den Zielcomputer (arm, uclibc).
  3. Führe die a.out gerade aus.
  4. Benutzt gdb (terget) gdb a.out und listet den Quellcode auf, er sagt No such file or directory . Die Tatsache war schon immer so?
  5. Wenn ich die Datei 1.c auf das Ziel kopiere, wird der Quellcode mit list command aufgelistet.

Meine Frage:

gdb war schon immer so, oder gibt es andere Möglichkeiten, die ich kontrollieren kann?

Haben Sie irgendwelche Vorschläge zum Debuggen des Programms?

Es tut mir leid für mein schlechtes Englisch

Einige nützliche Informationen:

Quellcode 1.c Datei :

%Vor%

Kreuz kompilieren Version (Host)

%Vor%

Kompilierbefehl:

%Vor%

Host:

%Vor%

Ziel:

%Vor%

Nach dem Kopieren auf das Ziel, dann:

%Vor%

Ausführen ist in Ordnung

%Vor%

die Ziel-gdb-Version

%Vor%

debug a.out

%Vor%

wenn ich die Quellcodedatei 1.c in das gleiche Verzeichnis

kopiere %Vor%

gdb könnte jetzt den Quellcode auflisten.

%Vor%

Bei Host-Plattform, wenn ich

  1. Kompilieren Sie mit gcc -g 1.c auf der Host-Plattform.
  2. als umbenennen oder entfernen die 1.c -Datei.
  3. Benutze gdb a.out

Die gleiche Situation tritt auf.

%Vor%     
zodiac1111 21.02.2014, 08:15
quelle

2 Antworten

5

Lesen sorgfältig die Dokumentation von GDB , insbesondere zu Quellpfad . Sie möchten den dir -Befehl

verwenden

Wechsle auch zu einer neueren gdb (vielleicht indem du gdb aus dem Quellcode kompilierst). Aktuelle Version ist 7.7 (also 6.8 ist wirklich alt)

    
Basile Starynkevitch 21.02.2014, 08:44
quelle
0

AFAIK Sie benötigen eine Kopie der Quelle auf Ihrem Zielrechner (auf dem Sie den Debugger ausführen).

Eine andere Möglichkeit, dies zu debuggen, besteht darin, Ihren Code unter gdbserver auf dem Zielcomputer auszuführen und dann von Ihrem PC aus eine Verbindung mit gdbserver herzustellen. Also zuerst auf der Zielmaschine etwas wie:

%Vor%

Dann auf Ihrem PC tun:

%Vor%

Wenn ich mit deinen Switches kompiliere und dann versuche, die Source in gdb lists so wie erwartet aufzulisten. Sie dürfen Quell- oder Binärdateien nicht verschieben, da sie von gdb nicht gefunden werden können.

    
dbrank0 25.02.2014 09:40
quelle

Tags und Links