向Valgrind中的进程发送信号?

11

我应该如何向在valgrind内运行的进程发送信号来检查其内存使用情况?

谢谢!

2个回答

8

如果你想向 valgrind 发送信号,pkill -USR1 valgrind 对我来说不起作用。

pkill -USR1 memcheck

这样就行了。


3

没有信号告诉Valgrind检查其内存使用状态。如果您想了解程序随时间使用的内存量以及分配该内存的位置,Valgrind的massif工具可以记录这些信息,并使用其ms_print实用程序显示。Massif会自动记录程序的内存使用快照,包括峰值快照,表示内存使用达到峰值的点(在使用默认选项时,误差不超过1%)。

要在Valgrind的massif工具下运行程序:

valgrind --tool=massif yourprogram

将会创建一个名为massif.out.pid的二进制文件。使用ms_print可以将信息以文本形式格式化:
ms_print massif.out.12345

啊,谢谢。 我的程序需要接受信号编号40来退出。它是一个服务器守护进程,所以我唯一的方法是发送信号40,然后信号处理程序将使程序退出。因此,当我在valgrind中检查其内存使用情况时,我找不到发送信号给它的方法,因为根本没有该程序的进程。有没有办法可以向我的程序发送信号?谢谢! - Yang Bo
2
如果您向运行您的程序的valgrind进程发送信号,则valgrind会将其传递给您程序的信号处理程序。 - mark4o

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接