Objdump

Aus Lowlevel
Version vom 6. August 2009, 18:53 Uhr von Hartmut (Diskussion | Beiträge) (Die Seite wurde neu angelegt: '''objdump''' ist ein mächtiges Utility aus den binutils für Linux. Es ermöglicht, (Objekt)-Code zu disassemblieren und verschiedenste Informationen zu der Datei zu ...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation,

objdump ist ein mächtiges Utility aus den binutils für Linux. Es ermöglicht, (Objekt)-Code zu disassemblieren und verschiedenste Informationen zu der Datei zu bekommen.


objdump in der OS-Entwicklung

In der OS-Entwicklung ist objdump ein unentbehrlichs Werkzeug. Mit objdump lassen sich z.B. schnell und einfach Symbolnamen anzeigen.


Crashkurs

Um die Symboltabelle einer Objektdatei zu bekommen, gibt man

objdump -t DATEI

ein. Die Ausgabe sieht dann z.B. so aus bei einem einfachen "Hallo-Welt"-Programm in C:

hello.o: file format elf32-i386

SYMBOL TABLE: 00000000 l df *ABS* 00000000 hello.c 00000000 l d .text 00000000 .text 00000000 l d .data 00000000 .data 00000000 l d .bss 00000000 .bss 00000000 l d .rodata 00000000 .rodata 00000000 l d .note.GNU-stack 00000000 .note.GNU-stack 00000000 l d .comment 00000000 .comment 00000000 g F .text 0000002b main 00000000 *UND* 00000000 puts

Um die dynamische Symboltaballe zu bekommen, nutzt man

objdump -T DATEI

Per

objdump -d DATEI

lässt sich eine Datei (bzw. der ausführbare Teil) disassemblieren und auf der Kommandozeile ausgeben. Alternativ lässt sich die Ausgabe natürlich auch Umleiten:

objdump -d DATEI > output.<

Um eine Datei komplett zu disassemblieren, nutzt man

objdump -D DATEI


Weblinks