我有一个流程x,我想用valgrind判断泄漏.问题是xy运行,而y又由z运行.我不能单独运行x,因为yzx设置了环境,比如环境变量、命令行switch 、x需要的文件等等.

  1. 我有没有办法告诉valgrindz上运行,但跟踪它找到的任何Forking 并报告它们?
  2. 我有没有办法告诉valgrind遵循任何Forking ,但只报告名为x的过程?
  3. 有没有什么方法可以让valgrind连接到已经运行的进程,就像我使用gdb那样?

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

谢谢

推荐答案

  1. 如果有--trace-children=yes个选项,Valgrind遵循Forking 过程.
  2. 您应该能够通过使用合适的过滤器来实现这一点.
  3. 不可以.Valgrind使用LD_PRELOAD钩住模块加载代码,因此无法连接到正在运行的进程.

Linux相关问答推荐

使用文件名重新打开 linux 管道(仅从一侧)

c++进程状态中的+是什么意思

为什么我不能将 Unix Nohup 与 Bash For 循环一起使用?

如何在 shell 脚本中动态生成新的变量名?

如何将整个文件夹从 Amazon EC2 Linux 实例复制到本地 Linux 机器?

为什么 Linux 不通过 TSS 使用硬件上下文切换?

更改核心转储的位置

如何将输出从 grep 传送到 cp?

在 Linux/POSIX 系统上获取用户全名的最简单方法是什么?

我想为 Linux 内核做贡献

如何在 Linux 中创建高分辨率计时器来测量程序性能?

如何在没有 IDE 的情况下构建和部署三星 SmartTV 应用程序(例如:在 Linux 上)

execv() 和 fork() 的时间浪费

docker images显示图像,docker rmi表示没有这样的图像或参考不存在

如何知道是否有足够的内存可以在 Linux 机器上部署新应用程序?

在 linux 上查看文件大小

为什么`du`的输出通常与`du -b`如此不同

如何在 linux 或 unix 上找到用户的主目录?

Linux:处理成服务

如何在 linux 中使用 CMake 和 Kdevelop 编译 GLUT + OpenGL 项目?