Forum: Compiler & IDEs Informationen aus .elf Datei lesen?


von Ose (Gast)


Lesenswert?

Hallo,

gibt es ein Programm mit dem ich Informationen aus meiner .elf Datei 
rauslesen kann. Z.B. in welchen Sektionen welche Daten liegen?

Gruss

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

objdump (Bestandteil der binutils)

von Stefan B. (stefan) Benutzerseite


Lesenswert?


von Ose (Gast)


Lesenswert?

hört sich gut an.

Gibts das den nur für Linux? Ich habe hier nur Winxp.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Es gibt für verschiedene Targets (Prozessoren, Mikrocontroller) sog. 
Toolchains bei denen diese Tools aus dem binutils-Paket dabei sind. 
Einige dieser Toolchains sind auch für Window XP portiert. Portiert sind 
z.B. die Toolchains für X86 (MinGW, Cygwin), ARM (WINARM, Yagarto), AVR 
(WINAVR). Alternativ kannst du ja auch mit einer Linux LiveCD/LiveDVD 
arbeiten.

von Ose (Gast)


Lesenswert?

Gibts eine Möglichkeit mit einem dieser bintools die .elf auf Fehler zu 
prüfen?

Grund:

Mit der Option
readelf -all myfile.elf
wird dann schön alles angezeigt.

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg 
Align
  LOAD           0x000094 0xa0200000 0xa0200000 0x02000 0x02000 R   0x4
  LOAD           0x0020a0 0xa0203000 0xa0203000 0x1dc52c 0x1dc52c R E 
0x20
  LOAD           0x1de5e0 0x80200000 0x80200000 0x016d0 0x341628 RW 
0x20

Etwas scheint aber nicht richtig gemappt zu sein. Mein µC interner 
"image loader", dem ich die .elf übergebe, kann Segment 0 und 1 richtig 
laden, jedoch kommt danach:

ELF segment 2 (0x80200000 - 0x802016cf) refers to invalid memory

Was aber nicht sein kann, denn ab Adresse 0x8020.0000 isr RAM für die 
Applikation.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Ich stehe da etwas auf dem Schlauch, weil ich nichts offensichtlich 
komisches sehe. Für weitere Untersuchungen müsste man das Target 
(Prozessor, Speicherlayout), die Toolchain (bei GNU Toolchain 
insbesondere das verwendete linker control script) sowie den Image 
loader genauer kennen.

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.