2010-02-10 11 views

Antwort

6

Um ein Signal zu senden valgrind, pkill -USR1 valgrind will nicht für mich arbeiten.

pkill -USR1 memcheck

den Trick.

3

Es gibt kein Signal, das valgrind anweist, seinen Speicherauslastungsstatus zu überprüfen. Wenn Sie an der Speichermenge interessiert sind, die von Ihrem Programm im Laufe der Zeit verwendet wird, und wo dieser Speicher zugewiesen ist, kann Valgrinds massif Tool diese Informationen aufzeichnen, die dann mit dem Dienstprogramm ms_print angezeigt werden können. Massif zeichnet während der Ausführung des Programms automatisch Snapshots der Speicherauslastung des Programms auf, einschließlich eines Spitzen-Snapshots, der den Punkt darstellt, an dem die Speicherauslastung ihren Höchstwert erreicht hat (innerhalb von 1% mit den Standardoptionen).

Um Ihr Programm unter valgrind des Massiv-Tool ausführen:

valgrind --tool=massif yourprogram 

Eine Binärdatei massif.out.pid erstellt. Verwenden Sie ms_print die Informationen in Textform zu formatieren:

ms_print massif.out.12345 
+0

Ah, danke. Mein Programm muss eine Signalnummer 40 annehmen, um zu beenden. Es ist ein Server-Daemon, also ist der einzige Weg, um es zu beenden, ein Signal 40 zu senden, und der Sig-Handler wird das Programm beenden. Also, wenn ich seine Speicherverwendung in Valgrind überprüfe, kann ich keine Möglichkeit finden, ein Signal an sie zu senden, weil es überhaupt keinen Prozess dieses Programms gibt. Kann ich trotzdem ein Signal an mein Programm senden? Vielen Dank! –

+1

Wenn Sie das Signal an den Valgrind-Prozess senden, der Ihr Programm ausführt, wird Valgrind es an den Signalhandler Ihres Programms weiterleiten. – mark4o

Verwandte Themen