为什么Valgrind不工作?

时间:2013-03-25 19:21:04

标签: c ubuntu valgrind

我是C,Ubuntu的新手并决定安装Valgrind并在这个简单的C代码上进行测试:

#include <stdio.h>

int *p;

int main(void) {
    p = calloc(100, sizeof(int));
    return 0;
}

我已将此代码放在sum.c文件中并进行编译。然后我输入了:

valgrind --tool=memcheck --leak-check=yes sum

在终端窗口中,这就是我得到的:

enter image description here

我不知道它是继续循环还是只是卡住,但它会保持这种状态,直到我点击ctrl + d来停止它,这就是我得到的:

enter image description here

我做错了吗?为什么我不能看到我有内存泄漏?

顺便说一句,这是Ubuntu版本11.04。

提前致谢

2 个答案:

答案 0 :(得分:6)

注意

00000     0

您正在运行 /usr/bin/sum而不是您自己的可执行文件,因为您没有说./sum。这就是为什么你必须点击C-dsum(1)等到EOF。


作为旁注,很可能你不会报告泄漏,而是“内存仍然可以访问”。

答案 1 :(得分:2)

您可能需要使用以下符号

valgrind --tool=memcheck --leak-check=yes ./sum

即如果'sum'是可执行文件的名称。请注意添加'./'