Tuấ*_*hạm 3 c++ cmake address-sanitizer
我有一个由 cmake 构建的项目。我想用 AddressSanitizer 构建它来检测内存泄漏。我将这些行添加到 CMakeLists.txt 中:
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_STATIC_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
Run Code Online (Sandbox Code Playgroud)
但它不起作用(它没有显示我哪里有内存泄漏)。我用一个肯定包含内存泄漏的测试应用程序进行了测试,但仍然没有发生任何事情。有人可以解释我应该怎么做吗?
作为另一种选择,可以向目标添加消毒剂:
target_link_libraries(MyTarget PRIVATE -fsanitize=address)
Run Code Online (Sandbox Code Playgroud)
从这个答案得到,用 cmake 3.6 测试
| 归档时间: |
|
| 查看次数: |
8347 次 |
| 最近记录: |