objdump符号表的每一列是什么意思?

Je *_*Rog 41 objdump

SYMBOL TABLE:
0000000000000000  w      *UND*  0000000000000000              __gmon_start__
Run Code Online (Sandbox Code Playgroud)

我已经man objdump没有这样的信息了.

有谁知道5列是什么意思?

小智 60

第一栏:符号的价值

COLUMN TWO:一组字符和空格,表示在符号上设置的标志位.下面列出了七个分组:

第一组:(l,g ,,!)local,global,both,both.

第二组:(w,)弱或强的符号.

第三组:(C,)符号表示构造函数或普通符号.

第四组:(W,)符号是警告或正常符号.

第五组:(I,)间接引用另一个符号或正常符号.

第六组:(d,D,)调试符号,动态符号或普通符号.

第七组:(F,f,O,)符号是函数,文件,对象或普通符号的名称.

第三栏:符号所在的部分,ABS表示与某个部分无关

COLUMN FOUR:符号的大小或对齐方式.

第五栏:符号的名称.

如果您需要其他信息,请尝试手册页;-)或​​以下链接:http://manpages.ubuntu.com/manpages/intrepid/man1/objdump.1.htmlhttp://sourceware.org/binutils/docs /binutils/objdump.html

  • 只是想知道,对于COLUMN FOUR,通常表示的尺寸是多少?我们在看字节或位吗? (2认同)

The*_*ist 7

objdump -t打印文件的符号表条目。
输出类似于nm程序提供的信息。

输出中有7 列

  • 价值
  • 班级
  • 类型
  • 尺寸
  • 线
  • 部分
  • 符号名

(某些条目的某些列可能为空)

objdump最左边的列中打印符号名称nm在最右边的列中打印符号名称


Scr*_*ton 5

由于先前的答案似乎都不正确,因此您实际上正在寻找以下内容:

以下是此链接的片段,可能会有所帮助:

“通常在基于ELF的文件中看到的另一种常见输出格式如下所示:

      00000000 l    d  .bss   00000000 .bss
      00000000 g       .text  00000000 fred
Run Code Online (Sandbox Code Playgroud)

这里的第一个数字是符号的值(有时也称为其地址)。下一个字段实际上是一组字符和空格,它们指示在符号上设置的标志位。这些字符描述如下。下一个是与符号关联的部分,如果该部分是绝对的(即未与任何部分连接),则为ABS;如果在转储文件中引用了该部分但未在其中定义,则为UND

在节名称之后的另一个字段中,有一个数字,对于普通符号,它是对齐方式,对于其他符号,是大小。最后,显示符号的名称。”


小智 4

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

$ nm --format sysv simple # system V 格式比默认的 bsd 格式更容易阅读

名称 值 等级 类型 尺寸 线段

...
富 |080484e6| T | 功能|0000000c| |.文本