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