【问题标题】:name field of static variable in elf fileelf文件中静态变量的名称字段
【发布时间】:2020-08-13 17:43:19
【问题描述】:

我只是对静态变量的名称字段感到好奇。我有这个代码

int main ()
{
 static uint8_t var_1[10] = {1};
 static uitn8_t var_2[10] = {0};
  
return 1;
}

如果我使用readelf -a foo | grep var_2,我会看到以下内容:

38: 0000601058  10  OBJECT  LOCAL  DEFAULT  26  var_2.2482

我想知道 .2482 是什么意思,它是某种变量索引吗?我也在使用 gcc。谢谢

【问题讨论】:

  • S.E.上的类似Q
  • 好的,复制到回答区

标签: c gcc static


【解决方案1】:

编译器、链接器、目标文件、调试器等使用广为人知的"name mangling" 概念来确保程序中使用的标识符是唯一的并在内部区分它们 - 因为编程语言可能允许标识符使用相同的名称在几个地方。 “名称修饰”并不是真正标准化的,但每个工具都倾向于使用自己的名称修饰方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多