下載 valgrind-3.15.0.tar.bz2
安裝
$ sudo apt-get install automake
$ tar jxf valgrind-3.15.0.tar.bz2
$ cd valgrind-3.15.0
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
使用
1、檢查是否有內存泄露
$ gcc 3_12.c
$ valgrind ./a.out
下圖顯示 [ 沒有error,warning,但是卻發生了內存泄露 ] ,因此,需要進行手動釋放 malloc 開辟的空間。

2、開始調試
1)首先,打開一個終端,添加調試信息
$ gcc -g 3_12.c
$ valgrind --vgdb=yes --vgdb-error=0 ./a.out
2)然后,新建一個終端(Terminal),開始調試。
【前一個終端不要關閉,從現在開始始終在這個終端里 [ 輸入命令 ] ,從前一個終端中 [ 觀察輸出 ] 。】
$ gdb ./a.out
(gdb) target remote | vgdb
調試步驟:
- 使用
b命令在可能發生內存泄露行的附近設置一個斷點 - 輸入
continue令程序執行到斷點處(注意:不是gdb中的r命令) - 輸入
s或n進行單步調試,觀察輸出結果
⌈ 或者 ⌋ 不進行單步調試,直接輸出堆棧信息:
$ valgrind ./a.out --leak-check=full
最后,
經過調試,顯示正常了 13 allocs 13 frees 。

