Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
使用 -fsanitize=address 构建时,我有时会看到来自 libc++ 类的不良内存访问问题。
这些错误似乎在每次运行中都不可重复,有时根本不会发生。
怎么了?我怎样才能防止这种情况?
“如果 libc++ 容器从插桩(使用 ASan 重建)跨到非插桩代码,Address Sanitizer 可能会报告容器溢出误报。”
如果您的程序与使用 libc++ 而没有 ASAN 构建的库链接,那么您需要_LIBCXX_HAS_NO_ASAN在构建时进行定义。
_LIBCXX_HAS_NO_ASAN
请参阅为什么 Xcode 在创建地址清理构建时定义 _LIBCPP_HAS_NO_ASAN?