Gcc objdump中的常见符号是什么?

Gcc objdump中的常见符号是什么?,gcc,binutils,Gcc,Binutils,我正在阅读objdump的文档: 在使用-t选项为基于ELF的文件条目指定符号表输出的行中,有一行我想更好地理解。我在这里复制了这部分文档以进行澄清。我的问题是,对于公共符号,objdump显示对齐方式,但是什么是公共符号? 提前谢谢。 文档内容 另一种常见的输出格式,通常用于基于ELF的文件, 看起来像这样: 00000000 l d .bss 00000000 .bss 00000000 g .text 00000000 fred 这

我正在阅读objdump的文档:

在使用-t选项为基于ELF的文件条目指定符号表输出的行中,有一行我想更好地理解。我在这里复制了这部分文档以进行澄清。我的问题是,对于公共符号,objdump显示对齐方式,但是什么是公共符号?
提前谢谢。


文档内容

另一种常见的输出格式,通常用于基于ELF的文件, 看起来像这样:

      00000000 l    d  .bss   00000000 .bss
      00000000 g       .text  00000000 fred
这里的第一个数字是符号的值(有时称为其地址)。下一个字段实际上是一组字符和 表示符号上设置的标志位的空格。这些 字符描述如下。下一个部分是 如果截面是绝对的(即不是绝对的),则符号是关联的或ABS 连接到任何节),或UND(如果在中引用了该节) 正在转储但未在其中定义的文件

在节名称之后是另一个字段,一个数字,用于公共 符号是对齐方式,其他符号是尺寸。最后 将显示符号的名称


我对这个术语不太熟悉,但我相信“公共符号”指的是“公共变量存储”中的符号,即
.bss
部分。看

.bss
部分用于程序启动时未初始化(或零初始化)的数据。此数据没有存储在对象文件中的值,因此文件偏移量不合适


非通用变量存储符号是与存储在目标文件中的数据或代码相关联的变量、函数等,它们将在运行时加载到内存中。

不清楚您在问什么:您的意思是问什么符号经常出现,还是其他什么?我不明白什么是通用符号。例如,如果我定义一个整数变量,那是一个公共符号?哦,我现在明白了;在这种情况下,本文件对“通用”一词具有特殊含义。