Что означает каждый столбец таблицы символов objdump? - PullRequest
36 голосов
/ 12 июля 2011
SYMBOL TABLE:
0000000000000000  w      *UND*  0000000000000000              __gmon_start__

У меня man objdump, но такой информации нет.

Кто-нибудь знает, что означают столбцы 5 ?

Ответы [ 5 ]

54 голосов
/ 10 мая 2013

COLUMN ONE: значение символа

COLUMN TWO: набор символов и пробелов, указывающих биты флага, которые установлены на символе.Ниже перечислены семь групп:

первая группа: (l, g ,,!) Локальная, глобальная, ни одна, и другая.

вторая группа: (w,) слабая или сильнаясимвол.

группа три: (C,) символ обозначает конструктор или обычный символ.

группа четыре: (W,) символ является символом предупреждения или нормальным.

пятая группа: (I,) косвенная ссылка на другой символ или нормальный символ.

шестая группа: (d, D,) символ отладки, динамический символ или нормальный символ.

седьмая группа: (Символ F, f, O,) - это имя функции, файла, объекта или обычного символа.

КОЛОННА ТРЕТЬЯ: раздел, в котором находится символ, ABS означает, что он не связан сопределенный раздел

КОЛОННА ЧЕТВЕРТАЯ: размер или выравнивание символа.

КОЛОННА ПЯТАЯ: имя символа.

Если вам нужна дополнительная информация, попробуйте man-страницу ;-) илиследующие ссылки: http://manpages.ubuntu.com/manpages/intrepid/man1/objdump.1.html и http://sourceware.org/binutils/docs/binutils/objdump.html

5 голосов
/ 10 августа 2012

Поскольку ни один из предыдущих ответов не кажется правильным, вот что вы на самом деле ищете:

Вот фрагмент этой ссылки , который может помочь:

«Другой распространенный формат вывода, обычно встречающийся в файлах на основе ELF, выглядит следующим образом:

      00000000 l    d  .bss   00000000 .bss
      00000000 g       .text  00000000 fred

Здесь первое число - это значение символа (иногда его называют адресом). Следующее поле фактически являетсянабор символов и пробелов, указывающих биты флага, которые установлены на символе. Эти символы описаны ниже. Далее следует раздел, с которым связан символ, или ABS , если раздел является абсолютным (т.е. не связан слюбой раздел), или UND , если на раздел ссылается файл, который был выгружен, но не определен там.

После имени раздела следует другое поле, число, которое для общих символов равновыравнивание и для другого символа - размер. Наконец, отображается имя символа. "

3 голосов
/ 13 июля 2012

objdump -t печатает записи таблицы символов файла.
Вывод аналогичен информации, предоставленной программой nm .

Там 7 столбцов в выводе:

  • значение
  • класс
  • тип
  • размер
  • строка
  • раздел
  • имя-символа

(некоторые столбцы могут быть пустыми для некоторых записей)

objdump печатает имя-символа в крайний левый столбец .
nm печатает имя-символа в крайний правый столбец .

0 голосов
/ 04 сентября 2018

Из описания опции -t в справочных страницах objdump из man7.org формат объясняется следующим образом:

Другие распространенныеФормат вывода, обычно видимый для файлов на основе ELF, выглядит следующим образом:

              00000000 l    d  .bss   00000000 .bss
              00000000 g       .text  00000000 fred
  • Здесь первое число - это значение символа (иногда его называют адресом).
  • Следующее поле на самом деле представляет собой набор символов и пробелов, указывающих биты флага, которые установлены на символе. Эти символы описаны ниже.
  • Далее следует раздел, с которым связан символ, или * ABS *, если раздел является абсолютным (т. Е. Не связан с каким-либо разделом), или * UND *, если на раздел ссылаются в выгружаемом файле, нотам не определено.
  • После имени раздела следует другое поле, число, которое для общих символов является выравниванием, а для другого символа - размером.Наконец отображается имя символа.

Вы можете посетить вышеуказанный сайт для более подробного описания.

0 голосов
/ 13 июля 2011

http://www.cs.swarthmore.edu/~newhall/unixhelp/compilecycle.html#runtime

$ nm --format sysv simple   # system V format is easier to read than bsd format which is the default

Name                  Value   Class        Type         Size     Line  Section

...
foo                 |080484e6|   T  |              FUNC|0000000c|     |.text
...