c++ - MSVS 链接器在静态 const 字符串之间添加数据

原文 标签 c++ visual-studio memory linker win32-process

我正在查看由 msvs 2008 链接器生成的可执行文件中的数据部分,我看到它在 const 静态字符串之间插入了某种标记:

excerpt from the executable

我查看了其他一些可执行文件,并且看到了相同的模式。实际字节值虽然不同,但仍插入字符串之间。
我查看了生成的映射文件,它看起来不像是内存对齐措施(一些地址以 0xc 结尾,这意味着对齐到 4,但为什么要在其间添加这么多填充零),即使是这样,为什么会这样持续增加值(value)?用于检测内存损坏的某种保护序列或我不知道的其他原因?
对于任何反馈,我们都表示感谢。谢谢!

最佳答案

你确定那些是静态字符串吗?对我来说,它们看起来像 RTTI 数据 block ,可读字符串是类型名称,这表明其他字节是更多类型信息。

关于c++ - MSVS 链接器在静态 const 字符串之间添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20144938/

相关文章:

java - 如何发现哪个 Jar 或包创建了对象

java - 关闭 java InputStream 后内存未释放

c++ - 具有独立主机环境的线程(C++)

c# - 在 Dictionary 中使用类型 'null' 而不是 int

css - XXXX 不是 'yyyy-color' 属性的有效值

c - malloc 返回内存或虚拟地址空间

c++ - STL 排序对字符串 vector 与字符串指针 vector 的性能比较

c++ - __do_global_ctors segfault在项目中的某个位置,无法找到它

c++ - SetupDiGetDeviceProperty用法示例

c++ - 数据文件在哪里,以便Microsoft Visual C++ 2008调试器可以找到它们?