Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用基本c示例运行valgrind?_C++_C_Memory Leaks_Malloc_Valgrind - Fatal编程技术网

C++ 如何使用基本c示例运行valgrind?

C++ 如何使用基本c示例运行valgrind?,c++,c,memory-leaks,malloc,valgrind,C++,C,Memory Leaks,Malloc,Valgrind,安装: bzip2 -d valgrind-3.10.1.tar.bz2 tar -xf valgrind-3.10.1.tar 然后: 或者更简单 sudo apt-get install valgrind 如何在这个简单的程序example1.c上运行valgrind #include <stdlib.h> int main() { char *x = malloc(100); /* or, in C++, "char *x = new char[100] */

安装:

bzip2 -d valgrind-3.10.1.tar.bz2
tar -xf valgrind-3.10.1.tar 
然后:

或者更简单

sudo apt-get install valgrind
如何在这个简单的程序example1.c上运行valgrind

#include <stdlib.h>
int main()
{
    char *x = malloc(100); /* or, in C++, "char *x = new char[100] */
    return 0;
}
控制台的输出:

valgrind: example1: command not found

看起来不错。您只需在可执行文件之前添加一个
/
。没有它,
valgrind
无法找到它,并报告
“未找到命令”

valgrind --tool=memcheck --leak-check=yes ./example1
                                          ^

首先,编译您的C程序(-g非常重要;如果可执行文件中没有调试信息,valgrind无法从源代码中告诉您违规发生的行号,也无法告诉您违规内存分配的原始行。):

然后在可执行文件上运行valgrind:

valgrind --tool=memcheck --leak-check=yes ./example1
valgrind --tool=memcheck --leak-check=yes ./example1
                                          ^
gcc -g example1.c -o example1
valgrind --tool=memcheck --leak-check=yes ./example1