Это команда i686-linux-gnu-objdump, которую можно запустить в бесплатном хостинг-провайдере OnWorks с помощью одной из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
objdump - отображать информацию из объектных файлов.
СИНТАКСИС
обждамп [-a|--archive-заголовки]
[-b имя парня|--target =имя парня]
[-C|- распутать[=стиль]]
[-d|- разобрать]
[-D|--разобрать все]
[-z|--разобрать-нули]
[-ЭБ|-EL|--endian ={большой | маленький }]
[-f|- заголовки файлов]
[-F|--file-Offsets]
[--file-start-контекст]
[-g|--отладка]
[-e|--отладочные теги]
[-h|- заголовки разделов|--заголовки]
[-i|--Информация]
[-j .|--section =.]
[-l|- номера строк]
[-S|--источник]
[-m машина|--architecture =машина]
[-M кредита|--disassembler-options =кредита]
[-p|--private-заголовки]
[-P кредита|--private =кредита]
[-r|--релок]
[-R|--dynamic-reloc]
[-s|--полное содержание]
[-W [lLiaprmfFsoRt]|
- карлик[= rawline, = decodedline, = info, = abbrev, = pubnames]
[= aranges, = macro, = frames, = frames-interp, = str, = loc]
[= Диапазоны, = pubtypes, = trace_info, = trace_abbrev]
[= trace_aranges, = gdb_index]
[-G|- удары]
[-t|--симмы]
[-T|--динамические символы]
[-x|--all-заголовки]
[-w|--широкий]
[--start-address =адрес]
[--stop-address =адрес]
[--префикс-адреса]
[- [no-] show-raw-insn]
[--adjust-vma =смещение]
[--специальные символы]
[--prefix =префикс]
[--prefix-strip =уровень]
[--insn-width =ширина]
[-V|--версия]
[-H|--Помогите]
objfile...
ОПИСАНИЕ
объектный дамп отображает информацию об одном или нескольких объектных файлах. В
параметры определяют, какую конкретную информацию отображать. Этот
информация в основном полезна программистам, которые работают над
инструменты компиляции, в отличие от программистов, которым просто нужны
программа для компиляции и работы.
objfile... это объектные файлы, которые нужно исследовать. Когда вы указываете
архивы, объектный дамп показывает информацию о каждом из объектных файлов-членов.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
Длинная и краткая формы опционов, показанные здесь как альтернативы,
эквивалент. Хотя бы один вариант из списка
-a, -d, -D, -e, -f, -g, -G, -h, -H, -p, -P, -r, -R, -s, -S, -t, -T , -V, -x должно быть дано.
-a
--архив-заголовок
Если какой-либо из objfile файлы являются архивами, отображать архив
информация заголовка (в формате, аналогичном ls -l). Кроме
информация, которую вы могли бы перечислить ar tv, объектный дамп -a показывает объект
формат файла каждого члена архива.
--adjust-vma =смещение
При выгрузке информации сначала добавьте смещение ко всему разделу
адреса. Это полезно, если адреса разделов не
соответствуют таблице символов, что может произойти при установке
разделы по определенным адресам при использовании формата, который не может
представляют адреса разделов, например a.out.
-b имя парня
--target =имя парня
Укажите формат объектного кода для объектных файлов:
имя парня. Эта опция может не понадобиться; объектный дамп
автоматически распознает многие форматы.
Например,
objdump -b oasys -m вакс -h fu.o
отображает сводную информацию из заголовков разделов (-h) фу.о,
который явно идентифицируется (-m) как объектный файл VAX в
формат, созданный компиляторами Oasys. Вы можете перечислить форматы
доступно с -i опцию.
-C
--demangle [=стиль]
Расшифровать (разобрать) имена символов низкого уровня в имена пользовательского уровня.
Помимо удаления начального подчеркивания, добавленного системой,
это делает имена функций C ++ удобочитаемыми. В разных компиляторах есть
разные стили обработки. Необязательный аргумент стиля разборки
можно использовать для выбора подходящего стиля разборки для вашего
компилятор.
-g
--отладка
Показать отладочную информацию. Это пытается проанализировать STABS и
Информация о формате отладки IEEE, хранящаяся в файле, и распечатайте ее
с использованием синтаксиса, подобного C. Если ни один из этих форматов не найден
этот вариант возвращается к -W возможность распечатать любой DWARF
информация в файле.
-e
--отладочные теги
Подобно -g, но информация создается в формате, совместимом
с помощью инструмента ctags.
-d
- разобрать
Отобразите мнемонику ассемблера для машинных инструкций из
objfile. Эта опция разбирает только те разделы, которые
ожидается, что он будет содержать инструкции.
-D
--разобрать все
Подобно -d, но разбирать содержимое всех разделов, а не только
те, которые должны содержать инструкции.
Эта опция также оказывает незначительное влияние на разборку
инструкции в разделах кода. Когда вариант -d действует objdump
будет предполагать, что любые символы, присутствующие в разделе кода, встречаются на
граница между инструкциями и он откажется разбирать
через такую границу. Когда вариант -D действует однако это
предположение подавлено. Это означает, что возможно
выход -d и -D отличаться, если, например, данные хранятся в
разделы кода.
Если целью является архитектура ARM, этот переключатель также имеет
эффект принуждения дизассемблера к декодированию найденных фрагментов данных
в разделах кода, как если бы они были инструкциями.
--префикс-адреса
При разборке выведите полный адрес в каждой строке. Этот
это более старый формат разборки.
-ЭБ
-EL
--endian = {большой | маленький}
Укажите порядок байтов объектных файлов. Это влияет только на
разборка. Это может быть полезно при разборке файлового формата
который не описывает информацию о порядке байтов, такую как S-записи.
-f
- заголовки файлов
Отображение сводной информации из общего заголовка каждого из
objfile файлы.
-F
--file-Offsets
При разборке секций всякий раз, когда отображается символ, также
отобразить смещение файла для области данных, которая должна быть
свалил. Если нули пропускаются, то при разборке
возобновляет работу, сообщает пользователю, сколько нулей было пропущено, и файл
смещение места, откуда возобновляется разборка. Когда
выгрузка разделов, отображение смещения файла в месте от
где начинается дамп.
--file-start-контекст
Укажите, что при отображении исходного кода / дизассемблирования с промежуточным списком
(предполагает -S) из файла, который еще не отображался, расширить
контекст начала файла.
-h
- заголовки разделов
--заголовки
Отображение сводной информации из заголовков разделов объекта
.
Сегменты файлов могут быть перемещены на нестандартные адреса, для
пример, используя -Ттекст, -Tданныеили -Тбсс варианты на ld.
Однако некоторые форматы объектных файлов, такие как a.out, не хранят
начальный адрес файловых сегментов. В таких ситуациях
хотя ld правильно перемещает разделы, используя объектный дамп -h в
перечислить заголовки разделов файлов не могут отображать правильные адреса.
Вместо этого он показывает обычные адреса, которые неявны для
цель.
-H
--Помогите
Распечатайте сводку опций, чтобы объектный дамп и выйти.
-i
--Информация
Показать список, показывающий все архитектуры и форматы объектов
доступен для спецификации с -b or -m.
-j имя
--section =имя
Отображать информацию только для раздела имя.
-l
- номера строк
Обозначьте дисплей (используя отладочную информацию) именем файла
и номера строк исходного кода, соответствующие объектному коду или перемещению
показано. Полезно только с -d, -Dили -r.
-m машина
--architecture =машина
Укажите архитектуру для использования при дизассемблировании объектных файлов.
Это может быть полезно при дизассемблировании объектных файлов, которые не
описывать информацию об архитектуре, такую как S-записи. Вы можете перечислить
доступные архитектуры с -i опцию.
Если целью является архитектура ARM, то этот переключатель имеет
дополнительный эффект. Он ограничивает разборку только теми
инструкции, поддерживаемые архитектурой, указанной в машина.
Если необходимо использовать этот переключатель, потому что входной файл
не содержать никакой информации об архитектуре, но также желательно
разобрать все по инструкции использования -мам.
-M кредита
--disassembler-options =кредита
Передайте целевую информацию дизассемблеру. Только
поддерживается по некоторым целям. Если необходимо указать более
один вариант дизассемблера, затем несколько -M варианты можно использовать или можно
помещаются вместе в список, разделенный запятыми.
Если целью является архитектура ARM, можно использовать этот переключатель.
для выбора набора имен регистров, который будет использоваться во время дизассемблера.
Указание -M reg-имена-std (по умолчанию) выберет регистр
имена, используемые в документации по набору инструкций ARM, но с
регистр 13 называется 'sp', регистр 14 называется 'lr' и регистр 15
называется «ПК». Указание -M рег-имена-APCS выберет набор имен
используется стандартом вызова процедур ARM, при указании -M регу-
имена-сырые будет просто использовать r за которым следует номер регистра.
Также существует два варианта схемы именования регистров APCS.
включен -M reg-имена-atpcs и -M reg-name-special-atpcs , которые
используйте стандартные соглашения об именах вызова процедур ARM / Thumb.
(Либо с обычными именами регистров, либо со специальным регистром
имена).
Этот параметр также можно использовать для архитектур ARM, чтобы
дизассемблер, чтобы интерпретировать все инструкции как инструкции для большого пальца
используя переключатель --disassembler-options = force-thumb, Это может быть
полезно при попытке дизассемблировать код большого пальца, созданный другими
компиляторы.
Для x86 некоторые параметры дублируют функции -m
переключатель, но позволяет более тонкое управление. Множественный выбор из
следующее может быть указано в виде строки, разделенной запятыми.
«x86-64»
«i386»
«i8086»
Выберите разборку для данной архитектуры.
"интел"
"атт"
Выберите между режимом синтаксиса Intel и режимом синтаксиса AT&T.
"amd64"
"intel64"
Выберите между AMD64 ISA и Intel64 ISA.
"интеллект-мнемоника"
"атт-мнемоника"
Выберите между мнемоническим режимом Intel и мнемоническим режимом AT&T.
Примечание: "интеллект-мнемоника" подразумевает "интеллект" и "мнемонический атрибут".
подразумевает "атт".
"адрес64"
"адрес32"
"адрес16"
"data32"
"data16"
Укажите размер адреса по умолчанию и размер операнда. Эти четыре
параметры будут отменены, если "x86-64", "i386" или "i8086"
появятся позже в строке параметров.
"суффикс"
В режиме AT&T дает команду дизассемблеру распечатать
мнемонический суффикс, даже если суффикс может быть выведен
операнды.
Для PowerPC, книга управляет разборкой инструкций BookE.
32 и 64 выберите разборку PowerPC и PowerPC64 соответственно.
e300 выбирает разборку для семейства е300. 440 выбирает
разборка для PowerPC 440. ппкпс выбирает разборку для
парные одиночные инструкции PPC750CL.
Для MIPS этот параметр управляет печатью мнемоники инструкций.
имена и имена регистров в разобранных инструкциях. Несколько
выбор из следующих может быть указан через запятую
строка, а недопустимые параметры игнорируются:
"без псевдонимов"
Вывести мнемонику "сырых" инструкций вместо псевдо
мнемоника инструкций. Т.е. выведите «дадду» или «или» вместо
'move', 'sll' вместо 'nop' и т. д.
"мса"
Разобрать инструкцию MSA.
"вирт"
Разберите инструкции ASE для виртуализации.
«XPA»
Разберите ASE с расширенным физическим адресом (XPA)
инструкциями.
"gpr-names =ABI "
Распечатайте имена GPR (универсальный регистр), которые подходят для
указанный ABI. По умолчанию выбраны имена георадаров.
согласно ABI дизассемблируемого двоичного файла.
"fpr-names =ABI "
Распечатайте имена FPR (регистров с плавающей запятой) в соответствии с
указанный ABI. По умолчанию номера FPR печатаются, а не
чем имена.
"cp0-names =АРКА »
Распечатать регистр CP0 (сопроцессор управления системой; сопроцессор 0)
имена, соответствующие ЦП или архитектуре, указанной
ARCH. По умолчанию имена регистров CP0 выбираются в соответствии с
архитектура и ЦП разбираемого двоичного файла.
"hwr-names =АРКА »
Распечатать HWR (аппаратный регистр, используемый инструкцией "rdhwr")
имена, соответствующие ЦП или архитектуре, указанной
ARCH. По умолчанию имена HWR выбираются в соответствии с
архитектура и ЦП разбираемого двоичного файла.
"reg-names =ABI "
Распечатайте имена GPR и FPR, соответствующие выбранному ABI.
"reg-names =АРКА »
Печать имен регистров, зависящих от ЦП (регистр CP0 и имена HWR)
в зависимости от выбранного процессора или архитектуры.
Для любого из перечисленных выше вариантов ABI or ARCH может быть указано
as числовой печатать числа, а не имена, чтобы
выбранные типы регистров. Вы можете перечислить доступные значения
ABI и ARCH используя --Помогите опцию.
Для VAX вы можете указать адреса ввода функций с помощью -M
запись: 0xf00ba. Вы можете использовать это несколько раз, чтобы правильно
дизассемблировать двоичные файлы VAX, которые не содержат таблиц символов (например,
Дампы ПЗУ). В этих случаях маска входа функции будет
в противном случае они будут декодированы как инструкции VAX, что, вероятно, приведет к
остальная часть функции была неправильно разобрана.
-p
--private-заголовки
Распечатать информацию, относящуюся к формату объектного файла. В
Точная выводимая информация зависит от формата объектного файла. Для
некоторые форматы объектных файлов, дополнительная информация не выводится.
-P кредита
--private =кредита
Распечатать информацию, относящуюся к формату объектного файла. В
аргумент кредита это список, разделенный запятыми, который зависит от
формат (списки опций отображаются с помощью).
Для XCOFF доступны следующие варианты:
"заголовок"
"аут"
"разделы"
"syms"
"переезды"
"льняное",
"погрузчик"
"Кроме"
"типчк"
"Выслеживать"
"toc"
"ldinfo"
Не все форматы объектов поддерживают эту опцию. В частности, ELF
формат не использует его.
-r
--релок
Распечатайте записи о перемещении файла. Если используется с -d or -D,
Перемещения печатаются с вкраплениями разборки.
-R
--dynamic-reloc
Распечатайте записи динамического перемещения файла. Это только
имеет смысл для динамических объектов, таких как определенные типы общих
библиотеки. Что касается -r, если используется с -d or -D, переселения
распечатанные перемежающиеся с разборкой.
-s
--полное содержание
Показать полное содержание всех запрошенных разделов. По умолчанию
отображаются все непустые разделы.
-S
--источник
Если возможно, отобразите исходный код, смешанный с дизассемблированием.
Подразумевает -d.
--prefix =префикс
Указывать префикс добавить к абсолютным путям при использовании с -S.
--prefix-strip =уровень
Укажите, сколько начальных имен каталогов нужно убрать
зашитые абсолютные пути. Без --prefix =префикс.
--show-raw-insn
При разборке инструкции распечатайте инструкцию в шестнадцатеричном формате как
а также в символической форме. Это значение по умолчанию, кроме случаев, когда
--префикс-адреса используется.
--no-show-raw-insn
При разборке инструкции не распечатывать инструкцию
байтов. Это значение по умолчанию, когда --префикс-адреса используется.
--insn-width =ширина
Дисплей ширина байты в одной строке при разборке
инструкциями.
-W [lLiaprmfFsoRt]
--dwarf [= rawline, = decodedline, = info, = abbrev, = pubnames]
--dwarf [= aranges, = macro, = frames, = frames-interp, = str, = loc]
--dwarf [= Диапазоны, = pubtypes, = trace_info, = trace_abbrev]
--dwarf [= trace_aranges, = gdb_index]
Отображает содержимое разделов отладки в файле, если таковые имеются.
настоящее время. Если одна из необязательных букв или слов следует за
переключить, тогда будут отображаться только данные из этих конкретных разделов.
свалил.
Обратите внимание, что для отображения содержимого нет однобуквенной опции.
участков трассировки или .gdb_index.
Примечание: вывод = информация параметр также может зависеть от
кредита - глубина карлика, --dwarf-start и --dwarf-check.
--dwarf-depth =n
Ограничьте дамп раздела ".debug_info" до n дети. Это
полезно только с --dwarf = информация. По умолчанию печатаются все матрицы DIE;
специальное значение 0 для n также будет иметь этот эффект.
С ненулевым значением для n, Умирает на глубине n уровни будут
не печататься. Ассортимент для n отсчитывается от нуля.
--dwarf-start =n
Печатать только DIE, начинающиеся с номера DIE n. Это только
полезно с --dwarf = информация.
Если указано, эта опция подавляет печать любого заголовка.
информация и все умирают до того, как они пронумерованы n. Только братья и сестры
и будут распечатаны дочерние элементы указанного DIE.
Это можно использовать вместе с - глубина карлика.
--dwarf-check
Включите дополнительные проверки согласованности информации гномов.
-G
- удары
Показать полное содержание всех запрошенных разделов. Показать
содержимое разделов .stab и .stab.index и .stab.excl из
файл ELF. Это полезно только в системах (например, Solaris 2.0).
в котором записи таблицы отладочных символов ".stab" переносятся в
Раздел ELF. В большинстве других форматов файлов отладочная таблица символов
записи чередуются символами связи и видны в
--симмы вывод.
--start-address =адрес
Начать отображение данных по указанному адресу. Это влияет на
выход -d, -r и -s настройки.
--stop-address =адрес
Прекратить отображение данных по указанному адресу. Это влияет на
выход -d, -r и -s настройки.
-t
--симмы
Распечатайте записи таблицы символов файла. Это похоже на
информация предоставлена nm программа, хотя формат отображения
отличается. Формат вывода зависит от формата
сбрасываемый файл, но есть два основных типа. Один смотрит
как это:
[4] (сек 3) (fl 0x00) (ty 0) (scl 3) (nx 1) 0x00000000 .bss
[6] (сек 1) (fl 0x00) (ty 0) (scl 2) (nx 0) 0x00000000 fred
где число в квадратных скобках - это номер
запись в таблице символов, сек number - номер раздела,
fl значение - биты флага символа, ty число - это
тип символа, SCL число - это класс хранения символа, а
nx значение - это количество вспомогательных записей, связанных с
условное обозначение. Последние два поля - это значение символа и его имя.
Другой распространенный формат вывода, обычно встречающийся с файлами на основе ELF,
выглядит так:
00000000 ld .bss 00000000 .bss
00000000 г. текст 00000000 фред
Здесь первое число - это значение символа (иногда его называют
как его адрес). Следующее поле на самом деле представляет собой набор символов
и пробелы, указывающие биты флага, которые установлены в символе.
Эти символы описаны ниже. Далее идет раздел с
с которым связан символ или * АБС * если раздел абсолютный
(т.е. не связан ни с каким разделом), или * UND * если раздел
упоминается в выгружаемом файле, но не определяется там.
После названия раздела идет еще одно поле, число, которое для
общие символы - это выравнивание, а для других символов - размер.
Наконец, отображается имя символа.
Символы флага разделены на 7 следующих групп:
«Л»
"грамм"
"u"
"!" Символ является локальным (l), глобальным (g), уникальным глобальным (u),
ни глобальный, ни локальный (пространство), ни глобальный, ни локальный
(!). Символ не может быть ни локальным, ни глобальным для множества
причины, например, потому что он используется для отладки, но это
возможно, это указание на ошибку, если она когда-либо одновременно локальная и
Глобальный. Уникальные глобальные символы являются расширением GNU для
стандартный набор привязок символов ELF. Для такого символа
динамический компоновщик позаботится о том, чтобы во всем процессе
- это всего лишь один символ с таким именем и используемым типом.
"w" - слабый (w) или сильный (пробел) символ.
"C" Этот символ обозначает конструктор (C) или обычный символ (a
пространство).
"W" Символ является предупреждением (W) или обычным символом (пробел). А
название предупреждающего символа - это сообщение, которое будет отображаться, если
всегда упоминается символ, следующий за предупреждающим знаком.
"Я"
"i" Этот символ является косвенной ссылкой на другой символ (I), a
функция, которая должна быть оценена во время обработки перемещения (i) или
обычный символ (пробел).
"d"
"D" Символ - это символ отладки (d), динамический символ (D) или
нормальный символ (пробел).
"F"
"F"
"O" Символ - это имя функции (F), файла (f) или
объект (O) или просто обычный символ (пробел).
-T
--динамические символы
Распечатайте записи динамической таблицы символов файла. Это только
имеет смысл для динамических объектов, таких как определенные типы общих
библиотеки. Это похоже на информацию, предоставленную nm
программа при наличии -D (- динамический) вариант.
--специальные символы
При отображении символов включают те, которые цель считает
быть в некотором роде особенным и обычно не представляющим интереса
для пользователя.
-V
--версия
Выведите номер версии объектный дамп и выйти.
-x
--all-заголовки
Отображение всей доступной информации заголовка, включая символ
таблицы и записи о перемещении. С использованием -x эквивалентно указанию
все -a -f -h -p -r -t.
-w
--широкий
Отформатируйте несколько строк для устройств вывода, у которых более 80
столбцы. Также не обрезайте имена символов, если они
отображается.
-z
--разобрать-нули
Обычно вывод разборки пропускает блоки нулей. Этот
опция указывает дизассемблеру разобрать эти блоки, просто
как и любые другие данные.
@файл
Прочтите параметры командной строки из файл. Прочитанные варианты вставлены
вместо оригинального @файл вариант. Если файл не существует, или
не читается, то вариант трактуется буквально, а не
удален.
Варианты в файл разделены пробелом. Пробел
персонаж может быть включен в вариант, окружив весь
вариант в одинарных или двойных кавычках. Любой персонаж (в том числе
обратная косая черта) может быть добавлена путем добавления префикса к символу, который будет
включены с обратной косой чертой. В файл сам может содержать дополнительные
@файл параметры; любые такие параметры будут обрабатываться рекурсивно.
Используйте i686-linux-gnu-objdump в Интернете с помощью сервисов onworks.net