43

我有一个过程x,我想用valgrind. 问题是x由 运行y,而y反过来又由 运行z。我无法x独立运行,因为yz设置了环境x,例如环境变量、命令行开关、所需的文件x等。

  1. 有什么方法可以告诉我valgrind继续运行,z但要遵循它找到的任何分叉并报告它们?
  2. 有什么方法可以告诉我valgrind遵循任何分叉,但只报告名为的进程x
  3. 有什么方法可以告诉我valgrind附加到已经运行的进程,就像我可以用 gdb 做的那样?

我不知道这是否重要,但我在 SuSE64 linux 和 valgrind-2.4.0 下运行。

谢谢!

4

1 回答 1

53
  1. 给定--trace-children=yes选项时,Valgrind 会遵循分叉进程。
  2. 您应该能够通过使用合适的过滤器来实现这一点。
  3. 不会。Valgrind 使用 LD_PRELOAD 挂钩到模块加载代码,因此无法附加到正在运行的进程。
于 2008-11-19T11:08:56.943 回答