2015-02-26 1 views
2

Почему существуют отдельные бинарные файлы objdump для разных инструментальных цепей, что-то вроде arm-none-eabi-objdump?Причина зависимости objdump от инструментальной цепи

Почему нельзя использовать исполняемый файл objdump вместе с конкретным коммутатором? Например, -marm, чтобы получить свалку о бинарнике руки?

+0

Практически все исполняемые файлы binutils (включая инструментальные средства компиляции/ссылки) скомпилированы отдельно для каждой целевой платформы. Причина, по которой у вас есть arm-none-eabi-objdump, - та же самая причина, по которой у вас есть arm-none-eabi-gcc и arm-none-eabi-ld. – immibis

ответ

0

Бинарные файлы для разных архитектур интерпретируются по-другому. Таким образом, один и тот же двоичный код будет интерпретироваться в совершенно разных машинных инструкциях на разных архитектурах ЦП. Что касается objdump, наиболее ясный пример может быть показан с помощью переключателя --disassemble, который инструктирует его преобразовать двоичный код в инструкции по сборке. Но инструкции по сборке совершенно разные для разных архитектур, поэтому утилита objdump должна знать правильную.

Смежные вопросы