9得票1回答
我该默认使用哪个互斥的Clang内存错误检测工具?

Clang有多个卫士,可启用运行时检查可疑行为。不幸的是,它们不能同时启用。 不能在同一程序中组合超过一个-fsanitize=address、-fsanitize=thread和-fsanitize=memory检查器。 更糟糕的是,这三个检查器中的每一个似乎都太有用了,Addres...

9得票3回答
泄漏和地址有什么区别?

我在项目中使用了 -fsanitize=leak 和 -fsanitize=address。 我原以为leak可以找到内存泄漏(未释放的内存),而address可以找到错误的内存访问。 但是address也会报告未删除的内存泄漏。那么,-fsanitize=leak 的作用是什么呢?

9得票1回答
如何使用Sanitizers编译Clang

我刚刚使用CMake编译了Clang,然后尝试运行一个sanitizer(使用clang -fsanitize=address),但是出现了以下错误: /usr/bin/ld: cannot find <CLANG_DIR>/9.0.0/lib/linux/libclang_rt...

8得票1回答
什么是GCC的有效的Sanitizer抑制字符串?

当使用gcc的sanitizer时,可以提供一个例外/抑制列表来处理虚报等问题。抑制文件格式文档不太完整。每个抑制项的格式如下: name_of_check:path_or_name 什么是name_of_check的有效值?

8得票1回答
地址检查器在Windows上的Bash无法正常工作。

我目前在Windows上的Ubuntu Bash环境中运行llvm、clang、clang-format和clang-modernize。我想使用谷歌发布的一套sanitize工具包,包括地址(address)、内存(memory)和线程(thread)sanitize。然而,fsanitiz...

8得票1回答
Valgrind、GCC 6.2.0和"-fsanitize=address"

最近,当使用“-fsanitize = address”编译时,使用valgrind运行应用程序时会出现执行异常,具体地说是 "ASan runtime does not come first in initial library list"。对于valgrind的实际作用,我有点不理解。“l...

8得票3回答
如何确定使用clang还是gcc编译了UBSAN?

我们使用以下代码来确定在clang和gcc编译时是否指定了-fsanitize=address。那么我们如何确定是否指定了-fsanitize=undefined? bool isSanitized = false; #if defined(__has_feature) #if __...

8得票1回答
Visual Studio 22 - Asan - 使用和重新启动外部符号化程序失败

我正在尝试为 Visual Studio 2022 配置 Asan Address Sanitizer。我正在按照 MS 的指南进行操作:https://learn.microsoft.com/en-us/cpp/sanitizers/asan?view=msvc-170#ide-msbuil...

7得票1回答
如何使LeakSanitizer忽略程序结束时的内存泄漏

我想使用LeakSanitizer来检测内存泄漏,但我正在使用的程序在exit之前不会释放内存。根据我的经验,这种情况相当普遍。 我想检测这个内存泄漏: int main(int argc, char const *argv[]) { char *p = malloc(5); ...

7得票3回答
如何在发出SIGINT以停止循环时获取地址检查器的输出

当我编译这个简单的测试程序时,地址泄漏检测器会给出明显的泄漏报告。但是当我编译相同的程序,但加上一个无限循环,并在发出SIGINT中断信号后中断它时,却没有任何输出。 检查汇编代码,malloc未被优化掉(如果可能的话)。 这是地址泄漏检测器的预期行为吗?我在其他开发中没有遇到这个问题。 ...