【发布时间】:2018-10-14 06:52:11
【问题描述】:
尝试在我的 C++ 项目中使用 AddressSanitizer 工具 (ASan),我得到了一个非常详细的输出,其中包含 undefined reference to '__asan_report_store8' 和 undefined reference to '__asan_report_load8',以及其他类似 __asan_stack_malloc_2 的输出。我的项目是用 CMake 构建的,我在 CMakeLists.txt 中添加了以下行:
add_definitions(-fsanitize=address -g3 -fno-omit-frame-pointer)
遵循这些 ASan 示例:
运行上面的 makefile 示例,我得到了预期的漂亮输出(也可以在视频链接中看到)。但是对于我的项目,我得到了这些错误的混乱堆栈跟踪。
注意事项:
- ubuntu 16.04
- 我设置了环境变量
ASAN_OPTIONS=symbolize=1和ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-5.0/bin/llvm-symbolizer以便在 ASan 输出中打印行号
【问题讨论】:
标签: c++ cmake address-sanitizer