72得票10回答
一个检测C++未定义行为的实现?

许多C++操作会导致未定义的行为,在这种情况下,规范完全没有说明程序应该具有什么行为,并允许发生任何事情。因此,存在各种情况,人们的代码可以在Debug但无法在Release模式下编译通过,或者在进行看似不相关的更改之前工作正常,或者在一个机器上工作但在另一个机器上不工作等等。 我的问题是是...

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

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

45得票2回答
gcc-4.9 Undefined Behavior Sanitizer有哪些功能?

在gcc-4.9更改中,它说: 添加了UndefinedBehaviorSanitizer(ubsan),一种快速的未定义行为检测器,并可以通过-fsanitize=undefined启用。将对各种计算进行插装,以在运行时检测未定义的行为。 UndefinedBehaviorSanitiz...

34得票2回答
为什么Clang不能启用所有的Sanitizer?

Clang提供了各种运行时检测工具,但其中有些工具不能同时使用。为什么呢?clang++-3.9 -std=c++1z -g -fsanitize=memory -fsanitize=address -o main main.cpp ...

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

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

25得票3回答
由于Mersenne Twister引擎上的负索引,libstdc++ std::random存在未定义行为(根据clang -fsanitize = integer)。

我在Ubuntu 20.04 LTS上使用clang++ 10,并带有以下参数:-fsanitize-undefined-trap-on-error -fsanitize=address,undefined,nullability,implicit-integer-truncation,imp...

17得票1回答
如何在QMake中启用Sanitizers?

如何在QMake的.pro文件中启用Sanitizers? 我找到了几个修改QMAKE_CXXFLAGS本身的资源,但介绍性博客文章说: 它被安排在开发分支(Qt 5.2)中,因为这是一个新功能,但您应该可以将其精选到例如Qt 5.0。然后,您可以使用 -address-saniti...

16得票1回答
临时字符串上的std::string_view——被ASan捕获

这里是悬空指针|引用的示例:#include <string> #include <string_view> #include <iostream> std::string foo() { return "test"; } int main() ...

16得票2回答
我应该如何在clang中使用sanitizer?

如果这是一个非常简单的概念,我很抱歉,但我发现很难获得正确的思维方式,以便正确使用clang提供的清洁剂。 float foo(float f) { return (f / 0); } 我使用以下方式编译了这个小片段:。 clang++ -fsanitize=float-divide-...

15得票1回答
AddressSanitizer,这些术语是什么意思?

所以我正在使用AddressSanitizer。但是其在描述问题时使用了一些专业术语。Shadow bytes around the buggy address: 0x0c067fff7fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00...