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.

Kühler Zhong
quelle

Antworten:

57

objdumpist ein Teil von binutils .

Ignacio Vazquez-Abrams
quelle
8
Homebrew hat es auch! :)
Adrian Petrescu
9
Ich hatte gehofft, Homebrew hat es! Vielen Dank! brew install binutils
Nacho4d
11
MacPorts binutils installiert objdumpals gobjdump.
1
-bash: objdump: command not found
IgorGanapolsky
1
brew install binutilsinstalliert es auch als gobjdump
Joseph Sheedy
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.

Ayaz
quelle
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.

ahuigo
quelle
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
Daniel
quelle
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.

Riaz Rizvi
quelle