如何告诉 valgrind 到 memcheck 分叉进程?

发布于 2024-07-09 17:42:34 字数 538 浏览 7 评论 0原文

我有一个进程 x,我想使用 valgrind 检查是否存在泄漏。 问题是 xy 运行,而 y 又由 z 运行。 我无法独立运行 x,因为 yz 设置了 x 的环境,例如环境变量,命令行开关、x 所需的文件等。

  1. 有什么方法可以告诉 valgrindz 上运行,但遵循它找到的任何分叉并举报他们?
  2. 有什么方法可以告诉 valgrind 跟踪任何分叉,但只报告名为 x 的进程?
  3. 有什么方法可以告诉 valgrind 附加到已经运行的进程,就像我可以使用 gdb 那样吗?

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

谢谢!

I have a process x that I want to check for leaks with valgrind. The problem is that x is run by y, and y in turn is run by z. I can't run x standalone because y and z setup the environment for x, such as environment variables, command line switches, files needed by x etc.

  1. Is there any way I can tell valgrind to run on z but to follow any forks it finds and report them too?
  2. Is there any way I can tell valgrind to follow any forks but only report on the process named x?
  3. Is there any way I can tell valgrind to attach to already-running process, the way I can do with gdb?

I don't know if this matters, but I'm running under SuSE64 linux and valgrind-2.4.0.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷清清 2024-07-16 17:42:34
  1. 当给定 --trace-children=yes 选项时,Valgrind 会遵循分叉进程。
  2. 您应该能够通过使用合适的过滤器来实现这一点。
  3. 不可以。Valgrind 使用 LD_PRELOAD 挂钩到模块加载代码,因此不可能附加到正在运行的进程。
  1. Valgrind follows forked processes when given the --trace-children=yes option.
  2. You should be able to achieve this by using suitable filters.
  3. No. Valgrind hooks into the module loading code using LD_PRELOAD, so attaching to a running process is not possible.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文