【发布时间】:2015-02-13 22:00:34
【问题描述】:
有人可以告诉我如何向 valgrind 添加自定义抑制的示例吗?我 99.99% 确定它会为字符串类生成错误,并且我想抑制 .supp 文件中的错误。我认为只需将其添加到目录或将我的函数添加到 default.supp 就足够简单了,但不会抑制错误。这就是我所做的:
1) 我用 --gen-suppressions=yes 运行 valgrind
2) 为下面列出的我的错误获得了生成的抑制
#Custom Suppression
{
MyCustomSupression
Memcheck:Addr1
fun:strlen
fun:_ZNSsC1EPKcRKSaIcE
obj:/home/steve/path/to/the/program
obj:/home/steve/path/to/the/program
obj:/home/steve/path/to/the/program
obj:/home/steve/path/to/the/program
obj:/home/steve/path/to/the/program
obj:/home/steve/path/to/the/program
obj:/home/steve/path/to/the/program
fun:(below main)
}
3)我将文件添加到我的eclipse文件夹中default.supp所在的目录
4) 我再次运行了 valgrind,但错误仍然存在
注意:我还尝试将抑制添加到 default.supp 文件中。我错过了一步吗?我做错了什么?
【问题讨论】:
-
“我 99.99% 确定它会为字符串类生成错误” 你有一个最小的例子来证明这一点吗?
std::string应该干净利落地 valgrind。 -
@BaummitAugen 这可能取决于库、编译器、系统和月相。我在 valgrind 中看到了很多 std::string 错误。