如何使用基本的 C 示例 运行 valgrind?
How to run valgrind with basic c example?
安装:
bzip2 -d valgrind-3.10.1.tar.bz2
tar -xf valgrind-3.10.1.tar
然后:
./configure
make
make install
或更简单的
sudo apt-get install valgrind
如何 运行 valgrind 那个简单的程序 example1.c
#include <stdlib.h>
int main()
{
char *x = malloc(100); /* or, in C++, "char *x = new char[100] */
return 0;
}
运行:
valgrind --tool=memcheck --leak-check=yes example1
valgrind: example1: command not found
控制台输出:
valgrind: example1: command not found
看起来不错。您只需要在可执行文件之前添加一个 ./
。没有它,valgrind
找不到它并报告 'command not found'
。
valgrind --tool=memcheck --leak-check=yes ./example1
^
首先,编译您的 C 程序(-g 非常重要;如果可执行文件中没有调试信息,valgrind 无法告诉您源代码中发生违规的行号,也无法告诉您内存分配的原始行被违规.):
gcc -g example1.c -o example1
然后 运行 可执行文件上的 valgrind:
valgrind --tool=memcheck --leak-check=yes ./example1
安装:
bzip2 -d valgrind-3.10.1.tar.bz2
tar -xf valgrind-3.10.1.tar
然后:
./configure
make
make install
或更简单的
sudo apt-get install valgrind
如何 运行 valgrind 那个简单的程序 example1.c
#include <stdlib.h>
int main()
{
char *x = malloc(100); /* or, in C++, "char *x = new char[100] */
return 0;
}
运行:
valgrind --tool=memcheck --leak-check=yes example1
valgrind: example1: command not found
控制台输出:
valgrind: example1: command not found
看起来不错。您只需要在可执行文件之前添加一个 ./
。没有它,valgrind
找不到它并报告 'command not found'
。
valgrind --tool=memcheck --leak-check=yes ./example1
^
首先,编译您的 C 程序(-g 非常重要;如果可执行文件中没有调试信息,valgrind 无法告诉您源代码中发生违规的行号,也无法告诉您内存分配的原始行被违规.):
gcc -g example1.c -o example1
然后 运行 可执行文件上的 valgrind:
valgrind --tool=memcheck --leak-check=yes ./example1