Как я могу установить 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 бит.


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инструкции по применению.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.