You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GCC编译带ThreadSanitizer的程序出现意外内存映射错误求助

ThreadSanitizer 触发"unexpected memory mapping"错误

已查阅两个相关问题:

  • 针对Clang的"FATAL: ThreadSanitizer: unexpected memory mapping when running on Linux Kernels 6.6+"问题
  • 另一篇提到需避免使用-pie -fPIC参数的"Thread sanitizer complaining of unexpected memory map"问题(本人未使用该参数)

最小可复现示例(MRE)

#include <iostream>

int main()
{
   std::cout << "Hello, world!\n";
}

编译命令

g++ -g -o hw hw.cpp -fsanitize=thread -pthread

运行错误输出

./hw
FATAL: ThreadSanitizer: unexpected memory mapping 0x80000004b000-0x80000004f000

环境与测试情况

  • 系统环境:Rocky 8.9 x86_64
  • ASLR相关:/proc/sys/kernel/randomize_va_space 值为0,无root权限查看或修改vm.mmap_rnd_bits、vm.mmap_rnd_compat_bits
  • 编译器测试:
    • clang++ 18.1.7编译运行正常
    • GCC 8.5、5.3等多个版本编译均触发相同错误
  • 跨机器测试:另一台机器运行正常,但无权限查看配置,已向IT部门提交支持工单
  • 编辑补充:两台机器的vm.mmap_rnd_bits均为28

内容的提问来源于stack exchange,提问作者Paul Floyd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 13:26:05