2008-09-16 3 views
2

Ich versuche gdb für armv6 Architektur zu bauen. Ich werde dieses Paket auf einer Fedora Linux-Intel x86-Box kompilieren. Ich las den Prozess der GDB der Installation, wieKompilieren von gdb für armv6

  1. die Quelle pachage Herunterladen

  2. Lauf configure -host

  3. make

Aber ich habe in den Prozess verloren, weil ich war nicht in der Lage, herauszufinden, was der Host sein wird, Ziel, das für das configure Skript benötigt wird.

Ich muss im Grunde in der Lage sein, Programme zu debuggen, die auf Armv6-Architektur-Board laufen, das Linux Kernel 2.6.21.5-cfs-v19 ausführt. Die gdb-Programmdatei, die ich nach dem Kompilieren der Quelle erhalten möchte, muss auch in der oben genannten Konfiguration laufen können.

Jetzt, um eine funktionierende gdb ausführbare Datei für diese Konfiguration zu erhalten, welche Schritte sollte ich folgen?

Antwort

0

Ziel/Host ist in der Regel das Ziel Werkzeugkette Sie verwenden würden (meist arm-linux)

2

Wir (www.rockbox.org) den Arm Ziel für eine ganze Charge unserer Zeit arbeitet DAPS verwenden. Das Ziel, das wir angeben, ist normalerweise arm-elf statt arm-linux.

1

Seien Sie vorsichtig mit arm-linux vs arm-elf, z.

  • http://sources.redhat.com/ml/crossgcc/2005-11/msg00028.html

    Arm-Elf ist eine eigenständige Werkzeugkette, die keine zugrunde liegende Betriebssystem benötigt. So können Sie es verwenden, um Programme zu erzeugen newlib

    Arm-Einsatz von Linux ist ein Werkzeugkette zu generieren Code für Linux OS targetted läuft auf einem ARM-Maschine

Wir sagen manchmal arm-elf für „bare ist Metall". Leider gibt es ein anderes "Bare Metal" Target arm-eabi und niemand weiß, was der Unterschied zwischen diesen beiden genau ist.

BTW,

Die GDB ausführbar, die ich nach der Kompilierung der Quelle erhalten mag, muss auch oben genannte Konfiguration läuft auf können.

Wirklich? Das Ausführen von GDB auf einem ARM-Board kann ziemlich langsam sein. Ich empfehle Ihnen, entweder von

  1. Remote-Debugging der ARM-Board von einem x86-PC
  2. einen Speicherkern auf der ARM-Board wird gespeichert, um es zu einem x86-PC übertragen und dort Inspizieren es dann

Vgl.

+0

"2. Speichern eines Speicherkern auf der ARM-Board, um es zu einem x86-PC übertragen und dann dort Inspektion" nicht er/sie müssen Sie auch alle Bibliotheken übertragen, die die Anwendung enthält libc? Ansonsten könnte das Backtrace völlig zufällig sein? –

+0

Ja, persönlich mag ich das Cross-Debootstrap-Tool auf Debian, das eine komplette Dateisystemhierarchie für ein ARM-Gerät auf meinem x86-Entwicklungscomputer erstellen kann. Aber ich nehme an, dass ähnliche Tools für andere Linux-Distributionen verfügbar sind. Durch das googeln von "arm chroot" fand ich mehrere mögliche Alternativen wie http://wiki.meego.com/ARM/chroot http://blog.coralic.nl/2010/08/12/creating-chroot-for-arm-on -ubuntu-mit-Wurzelstock / – nodakai