SYMBOL TABLE:
0000000000000000 w *UND* 0000000000000000 __gmon_start__
我已经运行了man objdump
,但是没有这样的信息。
有人知道5列的含义是什么吗?
SYMBOL TABLE:
0000000000000000 w *UND* 0000000000000000 __gmon_start__
我已经运行了man objdump
,但是没有这样的信息。
有人知道5列的含义是什么吗?
第一列:符号的值
第二列:一组字符和空格,指示在符号上设置的标志位。下面列出了七个分组:
第一组:(l,g,!)本地、全局、无两者,两者都不是。
第二组:(w,)弱或强符号。
第三组:(C,)符号表示构造函数或普通符号。
第四组:(W,)符号为警告或正常符号。
第五组:(I,)间接引用另一个符号或正常符号。
第六组:(d,D,)调试符号、动态符号或正常符号。
第七组:(F,f,O,)符号是函数、文件、对象的名称或正常符号。
第三列:符号所在的段,“ABS”表示与特定段无关联
第四列:符号的大小或对齐方式。
第五列:符号的名称。
如果您需要更多信息,请查看手册页或以下链接:https://manpages.ubuntu.com/manpages/kinetic/en/man1/objdump.1.html和https://sourceware.org/binutils/docs/binutils/objdump.html
由于之前的回答似乎都不正确,这里是您实际寻找的内容:
以下是来自链接的一段代码片段,可能会有所帮助:
"通常在基于ELF文件的情况下看到的另一种常见输出格式如下:
00000000 l d .bss 00000000 .bss
00000000 g .text 00000000 fred
这里的第一个数字是符号的值(有时称为地址)。下一个字段实际上是一组字符和空格,指示设置在符号上的标志位。这些字符如下所述。接下来是与符号关联的部分,如果该部分是绝对的(即与任何部分不相关),则为ABS,如果该部分在正在转储的文件中被引用但未在其中定义,则为UND。
在节名称之后,另一个字段是一个数字,对于常规符号,它是对齐方式,而对于其他符号,则是大小。最后显示符号的名称。
objdump -t打印文件的符号表项。
输出类似于nm程序提供的信息。
输出结果中有7列:
(某些条目可能有空列)
objdump在最左列中打印符号名称。
nm在最右列中打印符号名称。
http://www.cs.swarthmore.edu/~newhall/unixhelp/compilecycle.html#runtime
$ nm --format sysv simple # 系统V格式比默认的bsd格式更易于阅读
名称 值 类别 类型 大小 行号 节区
... foo |080484e6| T | FUNC|0000000c| |.text
nm
和 objdump
有什么关系? - Je Rogw
代表什么? - Je Rog通常在基于ELF的文件中看到的另一种常见输出格式如下:
00000000 l d .bss 00000000 .bss
00000000 g .text 00000000 fred