arm-linux-gcc
kompiliere eine einfache c-Datei auf dem Host (debian i386) mit -g
. a.out
auf den Zielcomputer (arm, uclibc). a.out
gerade aus. gdb a.out
und listet den Quellcode auf, er sagt No such file or directory
.
Die Tatsache war schon immer so? 1.c
auf das Ziel kopiere, wird der Quellcode mit list
command aufgelistet. Meine Frage:
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
gcc -g 1.c
auf der Host-Plattform. 1.c
-Datei. gdb a.out
Die gleiche Situation tritt auf.
%Vor% Lesen sorgfältig die Dokumentation von GDB , insbesondere zu Quellpfad . Sie möchten den dir
-Befehl
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)
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.