- •Содержание Назначение и условия применения программы
- •Характеристики программы
- •Обращение к программе Синтаксис командной строки и правила задания опций
- •Управление стадиями обработки и выводом компилятора
- •Опции управления диалектом языка Си
- •Опции вывода и подавления предупреждений
- •Опции отладки
- •Опции оптимизации
- •Опции препроцессора
- •Передача опций ассемблеру
- •Опции каталогов поиска
- •Опции задания целевой машины и версии компилятора
- •Машинно-зависимые опции для целевой платформы
- •Опции генерации кода
- •Переменные окружения, управляющие работой компилятора
- •Перечень опций, не описанных в данной инструкции
- •Сообщения
- •Приложение а. Бинарные утилиты
- •Утилита objcopy Общие сведения
- •Формат командной строки
- •Описание опций
- •Утилита objdump Общие сведения
- •Формат командной строки
- •Описание опций
- •Редактор связейld Общие сведения
- •Описание опций
- •Переменные окружения
- •Ассемблер as Общие сведения
- •Формат командной строки
- •Входные файлы и исходная программа
- •Выходные (объектные) файлы
- •Предупреждения и сообщения об ошибках
- •Общие опции командной строки
- •Специфические опции целевой платформы
- •Лист регистрации изменений
Утилита objdump Общие сведения
Утилита objdumpвыдает информацию об одном или нескольких объектных файлов, перечисленных в командной строке. Характер выдаваемой информации определяется набором опций. Информация, которую можно получить при помощи данной утилиты, полезна, в основном для программистов, работающих с различными программами компиляции, а не для тех, кто просто хочет компилировать исходные тексты программ и получать загружаемые или выполняемые файлы.
Формат командной строки
objdump[ -a | --archive-headers] [ -bформат_оф | --target=формат_оф] [ --debugging] [ -d | --disassemble] [ -D | --disassemble-all] [ -EB | -EL | --endian={big | little} ] [ -f | --file-headers] [ -h | --section-headers | --headers] [ -i | --info] [ -j секция | --section=секция] [ -l | --line-numbers] [ -S | --source] [ -m машина| --architecture=машина] [ -r | --reloc] [ -R | --dynamic-reloc] [ -s | --full-contents] [ --stabs] [ -t | --syms] [ -T | --dynamic-syms] [ -x | --all-headers] [ -w | --wide] [ --start-address=адрес] [ --stop-address=адрес ] [ --show-raw-insn ] [ --version] [ --help]объектный_файл...
Описание опций
объектный_файл...
Имена исследуемых объектных файлов. Если в командной строке заданы имена архивов, то objdumpпоказывает информацию о каждом элементе каждого архива.
По крайней мере одна опция (помимо -l) должна присутствовать в командной строке.
-a
--archive-header
Если среди заданных файлов есть архивы, то выдать информацию из заголовков архивов. Помимо информации, которую выдает ar -tv,objdump -aпоказывает также формат каждого объектного файла.
-bформат_оф
--target=формат_оф
Эта опция задает формат объектных файлов. Как правило, она не нужна - objdumpавтоматически распознает формат файла.
Пример:
objdump -b elf32-bigmips -h auto.o
показывает сводку информации для всех заголовков секций (-h) файлаauto.oc явно заданным типом формата. Список поддерживаемых форматов можно получить при помощи опции-i.
--debugging
Выдать отладочную информацию. Делается попытка распознать содержащуюся в файле отладочную информацию и напечатать ее, используя Си-подобный синтаксис. Реализовано распознавание только некоторых типов представления отладочной информации.
-d
--disassemble
Выдать ассемблерную мнемонику машинных инструкций объектного файла. Дизассемблируются только те секции, в которых подразумевается присутствие машинного кода.
-D
--disassemble-all
То же, что -d, но дизассемблируется содержимое всех секций, а не только тех, в которых подразумевается присутствие машинного кода.
-EB
-EL
--endian={big|little}
Эта опция задает порядок байт в слове для объектных файлов. Она влияет только на выдачу дизассемблированного кода. Может быть полезна для тех форматов, которые не содержат информации о порядке байт, например для формата S-записей.
-f
--file-header
Показать сводную информацию из общего заголовка каждого объектного файла, заданного в командной строке.
-h
--section-header
--header
Напечатать информацию заголовков секций объектного файла. Секции файла могут быть настроены на нестандартные адреса, например, при использовании опций -Ttext, -Tdataили-Tbssредактора связейld. Некоторые форматы (a.out) не содержат стартовых адресов сегментов. В таких случаях, хотяldи обеспечивает правильную настройку секций,objdump -hне может правильно выдать адреса. Вместо этогоobjdump -hпокажет обычные адреса, подразумеваемые для данной платформы.
--help
Напечатать сводку опций утилиты objdump и выйти.
-i
--info
Показать список архитектур и форматов, допустимых в качестве аргументов опций -b, -m.
-j секция
--section=секция
Распечатать запрошенную информацию только для указанной секции.
-l
--line-numbers
Помечать выдаваемый код или информацию о перемещаемых символах именем файла и номерами строк исходного файла (используя имеющуюся в файле отладочную информацию).
-m машина
--architecture=машина
Эта опция задает архитектуру, подразумеваемую при дизассемблировании объектных файлов, которые не содержат информации об архитектуре, например, S-записей. Список поддерживаемых архитектур можно получить при помощи опции -i.
-r
--reloc
Вывести перемещаемые элементы файла. При использовании совместно с -dили-Dвыдача данной опции перемежается с выдачей дизассемблированного кода.
-R
--dynamic-reloc
Вывести информацию о динамически перемещаемых элементах файла. Это имеет смысл только для динамических объектов, например, некоторых типов разделяемых библиотек.
-s
--full-contents
Показывать полное содержимое всех запрошенных секций.
-S
--source
Показывать исходный код, перемежающийся с дизассемблированным. Использование этой опции подразумевает включение -d.
--show-raw-insn
При дизассемблировании печатать инструкции и в шестнадцатеричном, и в символьном формате. Эта опция правильно обрабатывается не для всех форматов объектных файлов.
--stabs
Показать полное содержимое всех запрошенных секций. Показать содержимое секций .stab, .stab.index, .stab.exclдляelf-формата. Это полезно только для систем (Solaris 2.0), в которых отладочные элементы.stabтаблицы символов помещаются в секцииelf. В большинстве форматов файлов отладочные элементы таблицы символов перемежаются с загружаемыми символами и видны в выдаче, порождаемой опцией--syms.
--start-address=адрес
Начать выдачу данных с указанного адреса. Это относится к выводу, соответствующему опциям-d, -r, -s.
--stop-address=адрес
Закончить выдачу данных на указанном адресе. Это относится к выводу, соответствующему опциям-d, -r, -s.
-t
--syms
Напечатать элементы таблицы символов. Выдается информация, эквивалентная выдаче утилиты nm.
-T
--dynamic-syms
Напечатать динамические элементы таблицы символов файла. Это имеет смысл только для динамических объектов, например, для некоторых типов разделяемых библиотек. Использование этой опции эквивалентно вызову утилиты nmс опцией-D(--dynamic).
--version
Напечатать номер версии утилиты objdump и выйти.
-x
--all-header
Показать всю имеющуюся заголовочную информацию, включая таблицу символов и данные о настройке символов. Опция -xэквивалентна сочетанию опций-a -f -h -r -t.
-w
--wide
Отформатировать некоторые строки для устройств вывода с шириной строки более 80 символов.