2010-02-10 114 views

回答

6

要发出一个信号,Valgrind的,pkill的-USR1的valgrind不想为我工作。

pkill的-USR1 MEMCHECK

做的伎俩。

3

没有告诉valgrind检查其内存使用状态的信号。如果您对程序使用的内存量感兴趣并且分配了内存,valgrind的massif工具可以记录该信息,然后可以使用它的ms_print实用程序显示该信息。 Massif会在整个程序执行过程中自动记录程序内存使用情况的快照,包括峰值快照,表示内存使用率达到峰值时的点(使用默认选项在1%以内)。

下的valgrind的地块工具运行您的程序:

valgrind --tool=massif yourprogram 

二进制文件massif.out.PID将被创建。使用ms_print以文本的格式格式的信息:

ms_print massif.out.12345 
+0

啊,谢谢。 我的程序需要接受一个号码为40的信号才能退出。它是一个服务器守护进程,所以我退出的唯一方法是发送一个信号40,并且sig处理程序将使程序退出。所以,当我在valgrind中检查它的内存使用情况时,我找不到向它发送信号的方法,因为根本没有该程序的进程。无论如何,我可以发送信号给我的程序吗?谢谢! – 2010-02-11 03:18:20

+1

如果您将信号发送到正在运行程序的valgrind进程,那么valgrind会将它传递给您的程序的信号处理程序。 – mark4o 2010-02-11 03:53:52