2013-05-07 46 views
0

运行valgrind -v时,我从valgrind获取两个抑制的dl-hack3-cond-1错误。我在我的代码中使用calloc,但我已经确保释放所有内容并将其设置为NULL。还要确保每个calloc返回都要进行类型转换。我试图做一些研究来查看错误背后的含义,并发现它与动态链接有关,但关于这一点的信息也有限。这是针对一个班级的,导师说我们的valgrind跑步中不能有任何压制的错误。从valgrind -v显示的dl-hack3-cond-1抑制错误-v

我听说这可能发生在64位系统上运行,这是否有任何事实?谢谢你的帮助。

回答

0

问题出在64位系统上。最后让Valgrind在我的笔记本电脑上安装,同样的事情运行0错误。谢谢您的时间和想法。

3

如果你的老师真的说,那么他们是傻瓜......

valgrind默认的镇压是有原因的,因为在标准系统库的一些错误,你是不是打算无论你在自己的代码中做什么,都能摆脱它。

在许多情况下,他们可能是误报,但在任何情况下,valgrind开发人员已经认定他们不是用户可以或应该试图做任何事情的东西,这就是为什么他们为他们提供抑制作为其一部分默认安装。

也许你的教练真的意味着你不应该在自己的代码中有任何压抑错误?这将是一个完全合理的要求。

+0

我不知道有什么区别?你怎么知道错误是在图书馆还是在我的代码中? – 2013-05-07 19:25:45

+0

那么,如果它是一个内置的(那是),那么它将在系统库中。这种抑制只会捕获名称与'*/lib */ld-2.16 * .so *'匹配的库中的东西,也就是说在动态链接器中这是glibc的一部分。 – TomH 2013-05-07 21:29:57