Причина зависимости objdump от цепочки инструментов

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

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


person fohsie    schedule 26.02.2015    source источник
comment
Практически все исполняемые файлы binutils (включая цепочку инструментов компиляции/связывания) компилируются отдельно для каждой целевой платформы. Причина, по которой у вас есть arm-none-eabi-objdump, та же самая, по которой у вас есть arm-none-eabi-gcc и arm-none-eabi-ld.   -  person user253751    schedule 27.02.2015


Ответы (1)


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

person Eugene Sh.    schedule 26.02.2015