Как я могу установить objdump на Mac OS X?

46

Я хочу получить исходный код небольшого инструмента командной строки, используя objdump на Mac OS X.

Я использовал arm-linux-objdump в Linux и считаю его отличным инструментом.

Есть ли способ установить objdump на OS X? Я искал в Google и нашел информацию о arm-apple-dawin9-objdump, но не смог найти ничего для загрузки.

Холодный чжун
источник

Ответы:

57

objdumpявляется частью binutils .

Игнасио Васкес-Абрамс
источник
8
У доморощенного тоже есть! :)
Адриан Петреску
9
Я надеялся, что у доморощенного есть это! Спасибо! brew install binutils
nacho4d
11
MacPorts binutils устанавливается objdumpкак gobjdump.
1
-bash: objdump: command not found
Игорь Ганапольский
1
brew install binutilsтакже устанавливает его как gobjdump
Джозеф Шиди
32

Если на вашем Mac установлены XCode Tools, вы можете использовать otool, который поставляется с ним. Я верю, что это в значительной степени на что objdumpспособно.

Аяз
источник
14
+1 для otool - использовать otool -tV <executable>для разборки
Пол Р
1
dwarftoolтакже предлагает некоторые аналогичные функции.
Майк Веллер
3
otool имеет такую ​​опцию, как objdump -S, которая дает вывод сборки, помеченный исходным кодом? Не могу понять из вывода --help.
rgngl
1
-bash: dwarftool: command not found
Игорь Ганапольский
8

Если ваш файл размером 64 бита, вы должны использовать otool вместо gobjdump из binutils . На Mac OSX gobjdump предназначен для 32 бит.

ahuigo
источник
2
По состоянию на 2017 год gobjdump 2.27 (кажется, я получил его от homebrew?) Хорошо работает с 64 битами в macOS Sierra (10.12)
hmijail
6

Вы можете установить его с помощью Homebrew:

$ 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

Вы должны использовать, otoolпотому что objdumpэто инструмент binutils для двоичного формата ELF в Linux и большинстве других систем UNIX. otoolэто дизассемблер для двоичного формата Mac-O MacOS. Введите $ man otoolинструкции по применению.

Риаз Ризви
источник