86得票6回答
在Xcode中启用AddressSanitizer的正确方法是什么?请提供CMake的实现方式。

我已经按照如下方式添加了 AddressSanitizer 标志:set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") 使用Unix Makefiles时,一切构建和运行都很好。 生成Xcode项目时出现问题,因为它找不到...

84得票3回答
尝试在GCC中使用地址检测器时出现“未定义引用”错误

我正在尝试使用 来构建我的项目。 g++ -O0 -g -fsanitize=address -fno-omit-frame-pointer 但是遇到了很多错误,例如: /home/user/libs/opencv/include/opencv2/core/mat.hpp:715:...

53得票2回答
内存/地址Sanitizer与Valgrind的比较

我想要一些诊断 use-after-free 漏洞和未初始化漏洞的工具。我正在考虑使用 Sanitizer(内存和/或地址)和 Valgrind。但我对它们的优缺点知之甚少。有人能告诉我 Sanitizer 和 Valgrind 的主要特点、区别以及优缺点吗? 编辑:我找到了一些比较,例如:V...

47得票3回答
我该如何在gdb中打断UBSan报告并继续执行?

最近版本的GCC和Clang都加入了Undefined Behavior Sanitizer (UBSan),它是一个编译选项(-fsanitize=undefined),会添加运行时仪器代码。当出现错误时,会显示如下警告: packet-ber.c:1917:23: runtime ...

33得票3回答
GCC中地址检查器的有意义的堆栈跟踪

我刚尝试使用GCC编译,并加上了-fsanitize=address标志。当我运行程序时,地址检查器发现了一个缺陷,但堆栈跟踪并不有用。我该如何配置它,使其指向我需要查看的源代码位置?=======================================================...

32得票3回答
如何使AddressSanitizer在出现错误后不停止(以及其他问题)

我正在使用OS X 10.8.5操作系统,通过Homebrew安装了llvm 3.4(clang版本为3.4(tags / RELEASE_34 / final)),并使用-fsanitize = address进行构建。我可以在简单的演示程序中使用asan,但是在针对我们的代码库进行构建时,...

30得票2回答
如何在使用gcc 4.8编译时检测是否使用地址扫描器构建?

我正在处理一份用C语言编写的程序,有时会使用地址检测器进行构建以捕获错误。当程序启动时,它会在日志中打印一个横幅,其中包含构建者、所用分支、编译器等信息。我思考了一下,如果能够明确指出二进制文件是否使用了地址检测器也是不错的。我知道有 __has_feature(address_sanitiz...

27得票3回答
为什么 ASAN_SYMBOLIZER_PATH 无法与版本修饰的二进制文件一起使用了

在Ubuntu 14.10上,llvm-symbolizer程序被安装为/usr/bin/llvm-symbolizer-3.5。通常情况下,地址检测器想要在PATH中找到名为llvm-symbolizer的二进制文件。然而,可以通过显式设置ASAN_SYMBOLIZER_PATH来解决此问题...

27得票3回答
在OS X上使用Clang地址检查器

我想在OS X Mountain Lion上使用clang地址检查器,因为Valgrind在这个平台上进行内存检查时出现问题。 但是,当我在编译时使用了-fsanitize=address(就像我在这个页面上看到的一样:http://clang.llvm.org/docs/AddressSan...

21得票2回答
地址清理Boost.Python模块

我的项目包括一个大型的C++库和Python绑定(通过Boost.Python实现)。测试套件主要是基于Python绑定编写的,我想使用Sanitizers运行它,首先是ASAN。 我正在macOS(版本为10.13.1,但之前的版本也有此问题)上运行,并且似乎找不到一种方法来在Python模...