2012-03-25 70 views
1

我以前沒有用過valgrind,但我需要用它來檢查內存泄漏。我跑以下命令:運行valgrind

G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind -v --tool=memcheck --leak-check=full --num-callers=40 --log-file=valgrind.log example1 
valgrind: example1: command not found 

我追蹤了來自該網站的說明: http://www.cprogramming.com/debugging/valgrind.html

這是例1文件的樣子:

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

我知道Valgrind是安裝在我的機器上,無論我運行以下命令以確保:

sudo apt-get install valgrind 

有人可以請。指導我如何獲得valgrind的工作.... thx!

+1

有絕對稱得上'example1'在你的工作目錄中的可執行文件? – 2012-03-25 22:54:03

+1

valgrind針對二進制文件運行,而不是源文件。你編譯過example1嗎? – 2012-03-25 22:54:29

+2

似乎沒有找到'example'程序。你可以通過運行'valgrind'和'example'來驗證:前者不會造成任何傷害,但會打印一個用法;後者是你的程序。你可能想用'。/ example'來代替。 – 2012-03-25 22:55:25

回答

8

你忘了給它想要運行的程序的路徑!將example1替換爲可執行文件的路徑。

例如:

G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind -v \ 
    --tool=memcheck --leak-check=full --num-callers=40 \ 
    --log-file=valgrind.log ./example1