gpt4 book ai didi

c++ - 为什么经过地址清理的 C++ 库构建会在 libcxx 类中产生不可重现的 ASAN 问题?

转载 作者:行者123 更新时间:2023-11-30 05:21:25 24 4
gpt4 key购买 nike

当使用 -fsanitize=address 构建时,我有时会看到来自 libc++ 类的错误内存访问问题。

这些错误在每次运行中似乎都不会重复,有时甚至根本不会发生。

发生了什么事?我怎样才能避免这种情况?

最佳答案

“如果 libc++ 容器从检测(用 ASan 重建)到非检测代码,Address Sanitizer 可能会报告容器溢出误报。”

如果您的程序链接到使用 libc++ 构建的库而不使用 ASAN,那么您需要在构建时定义 _LIBCXX_HAS_NO_ASAN

参见 Why does Xcode define _LIBCPP_HAS_NO_ASAN when creating an address-sanitized build?

关于c++ - 为什么经过地址清理的 C++ 库构建会在 libcxx 类中产生不可重现的 ASAN 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40164738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com