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

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

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

excerpt from the executable

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

最佳答案

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

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

相关文章:

c++ - 虚拟继承和参数化构造函数

visual-studio - Microsoft Expression Studio 究竟是什么以及它如何与 Visual Studio 集成?

c - 地址空间库或进程

PHPExcel fatal error : Allowed memory size

python - 在Windows x64上编译Python模块

c++ - malloc 多个小时间或几个大时间更快?

c++ - 为什么对象在作为指针传递时超出范围,但在返回时却不会超出范围

c++ - 基类和派生类中的模板成员之间的重载解析

c++ - wxWidgets 程序段错误

c# - 从单独的进程中自动化 Visual Studio 实例