Wie kann ich objdump unter Mac OS X installieren?


46

Ich möchte den Quellcode eines kleinen Befehlszeilentools mit objdump unter Mac OS X erhalten.

Ich habe arm-linux-objdump unter Linux verwendet und finde es ein großartiges Tool.

Gibt es eine Möglichkeit, objdump unter OS X zu installieren? Ich habe Google durchsucht und Informationen zu arm-apple-dawin9-objdump gefunden, aber nichts zum Herunterladen gefunden.

Antworten:



32

Wenn Sie XCode Tools auf Ihrem Mac installiert haben, können Sie das mitgelieferte Tool verwenden . Ich glaube, es macht so ziemlich das, wozu objdumpes fähig ist.


14
+1 für otool - otool -tV <executable>zum Zerlegen verwenden
Paul R

1
dwarftoolbietet auch einige ähnliche Funktionen.
Mike Weller

3
Hat Otool eine Option wie objdump -S, die eine mit Quellcode versehene Assembly-Ausgabe liefert? Konnte nicht wirklich aus der --help-Ausgabe herausfinden.
rgngl

1
-bash: dwarftool: command not found
IgorGanapolsky

8

Wenn Ihre Datei 64 Bit groß ist, sollten Sie otool anstelle von gobjdump aus binutils verwenden . Unter Mac OS X steht gobjdump für 32 Bit.


2
Ab 2017 funktioniert gobjdump 2.27 (ich glaube, ich habe es von Homebrew?) Gut mit 64-Bit in macOS Sierra (10.12)
hmijail

6

Sie können es mit Homebrew installieren:

$ brew install binutils
==> Downloading https://homebrew.bintray.com/bottles/binutils-2.25.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring binutils-2.25.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/binutils/2.25: 107 files, 140M
$ which gobjdump
/usr/local/bin/gobjdump

2

Sie sollten verwenden, otoolweil objdumpes sich um ein binutils-Tool für das ELF-Binärformat unter Linux und den meisten anderen UNIX-Systemen handelt. otoolist der Disassembler für das Mach-O-Binärformat von MacOS. Geben Sie $ man otoolfür Anweisungen zur Verwendung.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.