如何使用基本的c示例运行valgrind

How to run valgrind with basic c example?

本文关键字:运行 valgrind 何使用      更新时间:2023-10-16

安装:

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示例1.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