【发布时间】:2011-10-03 18:05:13
【问题描述】:
SYMBOL TABLE:
0000000000000000 w *UND* 0000000000000000 __gmon_start__
我有man objdump,但没有这样的信息。
有人知道 5 列是什么意思吗?
【问题讨论】:
标签: objdump
SYMBOL TABLE:
0000000000000000 w *UND* 0000000000000000 __gmon_start__
我有man objdump,但没有这样的信息。
有人知道 5 列是什么意思吗?
【问题讨论】:
标签: objdump
根据man pages of objdump from man7.org中选项-t的描述,格式解释如下:
另一种常见的输出格式,通常用于基于 ELF 的文件,如下所示:
00000000 l d .bss 00000000 .bss
00000000 g .text 00000000 fred
- 这里的第一个数字是符号的值(有时称为它的地址)。
- 下一个字段实际上是一组字符和空格,表示在符号上设置的标志位。这些字符如下所述。
- 接下来是与符号关联的部分,如果该部分是绝对的(即未与任何部分连接),则为 *ABS*,如果在转储的文件中引用了该部分,但未在此处定义,则为 *UND* .
- 在节名之后是另一个字段,一个数字,对于常用符号来说是对齐方式,对于其他符号来说是大小。最后显示符号的名称。
您可以访问以上网站了解更详细的说明。
【讨论】:
第一列:符号的值
第二列:一组字符和空格,指示在符号上设置的标志位。下面列出了七组:
第一组:(l,g,,!) local, global, not, both.
第二组:(w,) 弱或强符号。
第三组:(C,) 符号表示构造函数或普通符号。
第四组:(W,)符号为警告或正常符号。
第五组:(I,) 间接引用另一个符号或普通符号。
第六组:(d,D,)调试符号、动态符号或普通符号。
第七组:(F,f,O,)符号是函数、文件、对象或普通符号的名称。
第三列:符号所在的部分,ABS表示与某个部分无关
第四列:符号的大小或对齐方式。
第五栏:符号名称。
如果您想了解更多信息,请尝试使用手册页 ;-) 或以下链接:http://manpages.ubuntu.com/manpages/intrepid/man1/objdump.1.html 和 http://sourceware.org/binutils/docs/binutils/objdump.html
【讨论】:
由于之前的答案似乎都不正确,这就是您真正要寻找的:
这是来自 link 的一个可能有帮助的 sn-p:
“另一种常见的输出格式,通常用于基于 ELF 的文件,如下所示:
00000000 l d .bss 00000000 .bss
00000000 g .text 00000000 fred
这里的第一个数字是符号的值(有时称为它的地址)。下一个字段实际上是一组字符和空格,指示在符号上设置的标志位。这些字符如下所述。接下来是与符号关联的部分,如果该部分是绝对的(即不与任何部分连接),则为 ABS,如果文件中引用了该部分,则为 UND被转储,但没有在那里定义。
在节名之后是另一个字段,一个数字,对于常用符号来说是对齐方式,对于其他符号来说是大小。最后显示符号的名称。”
【讨论】:
objdump -t 打印文件的符号表条目。
输出类似于 nm 程序提供的信息。
输出中有 7 列:
(某些条目的某些列可能为空)
objdump 打印 最左列 中的 symbol-name。
nm 打印 最右侧列中的strong>符号名称。
【讨论】:
http://www.cs.swarthmore.edu/~newhall/unixhelp/compilecycle.html#runtime
$ nm --format sysv simple #system V 格式比默认的 bsd 格式更容易阅读 名称 值 类别 类型 尺寸 线段 ... 富 |080484e6| T |功能|0000000c| |.text【讨论】:
nm 与 objdump 有什么关系?
w 类代表什么?