ubsan相关内容

C++ UBSAN 使用派生对象产生误报

我想使用 UBSAN(未定义行为消毒剂),但发现它完全没有价值,因为它会报告许多误报. 例如一个简单的 std::make_shared(42); 足以触发像 这样的警告 地址 0x00000236de70 内的成员访问不指向类型为“_Sp_counted_base"的对象 将此示例简化为 MWE 表明该问题在基类和继承方面更为普遍: 示例: struct Foo{int ..
发布时间:2021-09-13 20:40:32 其他开发

如何抑制来自 UBsan 的一些无符号整数溢出错误?

我的大部分 -fsanitize=unsigned-integer-overflow 错误都是错误,但有时我会按预期明确使用它,这会导致 UBSan 产生误报. 有没有办法关闭特定表达式的 UBSan 无符号整数溢出检查? 编辑以回应 Shafik 的评论,这是一个例子: unsigned a = 0;无符号 b = a - 1;//错误:无符号整数溢出 大多数时候这是一个错误,有 ..
发布时间:2021-09-13 20:40:20 其他开发

带有MinGW-w64的Clang 8:如何使用地址&UB消毒剂?

Clang 8发行说明包含以下内容有希望的行: 允许在MinGW上使用Address Sanitizer和Undefined Behavior Sanitizer. 但是,我无法弄清楚如何正确使用它们. 我将Clang 8.0.0与MSYS2 MinGW GCC结合使用.确切的细节在问题的底部. 我正在尝试用最少的代码来编译: 1.cpp #include ..
发布时间:2021-04-22 18:41:19 其他开发

未定义对__ubsan_handle_nonnull_arg的引用

最近几天,我一直在研究问题集拼写器,到目前为止,这是我所拥有的。不幸的是,它无法编译,我有点迷茫。如果有人可以帮助我并告诉我我在做什么错,我将非常感谢。 //实现了字典的功能功能 #include #include #include #include #include ..
发布时间:2020-10-11 22:59:48 其他开发

Lambda包装器在可变参数模板函数调用上引起的gcc分段错误

我今天已经花了很多时间试图理解为什么此代码 在 g ++ 6.2 和 g ++ 7.0 上出现段错误,同时按照预期在 clang ++ 3.9 (和 4.0 )。 我将问题简化为 85行独立代码段,在正常执行时不会进行段错误,但是始终报告UBSAN下的错误。 问题 在魔盒上可重现 ,方法是使用 g + +7 ,启用优化并通过 -fsanitize = undefined 作为额外标志。 ..
发布时间:2020-09-28 01:14:37 其他开发

通过指向错误函数类型的指针来调用函数(未知)

我有一个动态链接到库的程序. 该程序将一个函数指针传递到该库以执行. 但是ubsan(未定义的行为清理器)指定了指针在错误的函数类型上.而且只会发生 如果回调函数具有一个类作为参数 如果回调函数具有一个类作为参数,但仅前向声明 如果我指定编译标志:-fvisibility = hidden. 我用clang编译我的项目. 这是clang未定义行为消毒器中的错误吗? ..
发布时间:2020-05-28 22:55:56 其他开发

我如何在gdb中打破UBSan报告并继续?

最近的GCC和Clang版本的特性是Undefined Behavior Sanitizer(UBSan),它是一个编译标志( -fsanitize = undefined ),它增加了运行时检测代码。出现错误时,会显示如下所示的警告: packet-ber.c:1917:23:运行时错误:左移54645397829836991由8个地方不能表示类型'长整型' 现在我想调试这个,并得到 ..
发布时间:2018-04-21 14:35:28 其他开发

使用GCC未定义行为清洁剂

今天,我已阅读一篇文章关于 GCC未定义行为清除程序(ubsan)。但是,当我遵循这些步骤(在我的代码中添加 -fsanitize = undefined )时,编译器(Ubuntu 15.04上的GCC 4.9.2)说某些引用没有定义: || ===构建:在Entangle中调试(编译器:GNU GCC编译器)=== | obj / Debug / EntangleApp.o ||在 ..
发布时间:2018-04-20 17:37:10 其他开发

Undefined Behavior Sanitizer:如何抑制一些无符号整数溢出错误?

我的 -fsanitize = unsigned-integer-overflow 错误大多是错误,但有时我明确地使用它的预期,这导致UBSan产生假阳性。 p> 有没有办法可以为特定表达式关闭UBSan无符号整数溢出检查? 到Shafik的注释,这里是一个例子: unsigned a = 0; unsigned b = a - 1; //错误:无符号整数溢出 ..
发布时间:2016-10-23 21:05:40 C/C++