在Massif工具中跟踪子进程的命令

时间:2019-08-09 06:08:10

标签: c++ valgrind massif

我在Valgrind中使用地块工具。我需要跟踪子进程的堆内存。我找不到任何命令来获取子进程的堆内存。我的应用程序是一个恶魔服务器。

在memcheck工具中,我可以使用

获取子进程的详细信息
--track-children=yes

是否可以使用massif ??跟踪子进程堆内存?

该工具为所有子进程创建日志文件,但仅为主进程生成massif文件。

valgrind \
--tool=massif \
--heap=yes \
--time-stamp=yes \
--time-unit=ms \
--max-snapshots=1000 \
--detailed-freq=5 \
--log-file=../Valgrind_%p_massif.log \
--massif-out-file=../masssif_%p_output \
--xtree-memory=full \
<binary_name>

我希望会为所有子进程生成massif文件。但是它只能在主要过程中创建一个文件。

我检查了文件的上次访问时间。这是主进程执行时间直到等待请求的时间。

1 个答案:

答案 0 :(得分:0)

您缺少--trace-children = yes

选项

-trace-children不是memcheck专用的选项,它是一个常规的valgrind选项,必须与任何valgrind工具一起使用,如果您希望子进程也在exec之后在valgrind下运行。