2012-03-25 26 views
1

Ich habe Valgrind nicht verwendet, aber ich muss es verwenden, um Speicherleck zu überprüfen. Ich lief den folgenden Befehl ein:running 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 

ich von dieser Seite gefolgt Anweisungen: http://www.cprogramming.com/debugging/valgrind.html

das ist, was die example1 Datei wie folgt aussieht:

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

ich valgrind wissen, auf meinem Rechner installiert Ich habe den folgenden Befehl ausgeführt, um sicherzustellen, dass:

sudo apt-get install valgrind 

Kann jemand pls. Führe mir, wie man valgrind arbeitet .... thx!

+1

Gibt es auf jeden Fall eine ausführbare Datei namens 'example1' in Ihrem Arbeitsverzeichnis? –

+1

valgrind läuft gegen eine Binärdatei, nicht um eine Quelle. Haben Sie Beispiel1 kompiliert? –

+2

Es scheint, dass das Beispielprogramm nicht gefunden wurde. Sie können dies überprüfen, indem Sie sowohl "valgrind" als auch "example" ausführen: Ersteres wird keinen Schaden anrichten, aber eine Verwendung drucken; Letzteres ist dein Programm. Vielleicht möchten Sie stattdessen "./Example" verwenden. –

Antwort

8

Sie haben vergessen, den Pfad zu dem Programm anzugeben, das Sie ausführen möchten! Ersetzen Sie example1 durch den Pfad zu der ausführbaren Datei.

Zum Beispiel:

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