如何阻止GCC合并共享相同后缀的字符串文字?

时间:2018-07-27 05:03:30

标签: c gcc elf

GCC似乎在进行优化,将合并了相同后缀的字符串文字组合在一起。

例如,包含两个字符串文字"foo bar""bar"的C程序可以以最终的 ELF 形式结束(1)将字符串表更改为具有单个字符串常量"foo bar"和(2)程序已更改,因此指向"bar"的任何指针都被转换为现在将4个字符指向字符串"foo bar"。请注意,从C语言程序仅向前读取的角度来看,第二个文字仍然看起来像"bar"

虽然我认为这是一种压缩字符串集合而不增加 ELF 文件格式复杂度的聪明方案,但出于深奥的原因,这也给我带来了麻烦(在后处理< em> ELF 文件并对其进行各种分析)。如何关闭GCC的此功能?

0 个答案:

没有答案