c++ - 如何将 valgrind 与正在运行的进程相关联?

标签 c++ linux memory-leaks valgrind

我有一个名为“ifmFuseHandler”的二进制文件,它由如下所示的 shell 脚本调用: su - $USER -c "cd $DIR_INDEX;valgrind --leak-check=full ifmFuseHandler $IFM_SINGLE_THREAD -o allow_other $IFM_MOUNT"

但问题是,我只能看到一次 valgrind 日志,当控件点击这行 shell 时,即使 ifmFuseHandler 已启动并运行,valgrind 也不会提供任何分析信息。

因此,正如您在下面看到的,但没有进一步的日志记录:

insite1@POC-Messaging1:/opt/insiteone/log> ps -ef | grep ifmFuseHandler
insite1    622     1  0 04:19 ?        00:00:02 valgrind --leak-check=full ifmFuseHandler -o allow_other /opt/insiteone/fuse-mount
insite1   3225 26014  0 04:32 pts/2    00:00:00 grep ifmFuseHandler

最佳答案

您需要调整您的 shell 脚本以显式地将 valgrind 的输出记录到文件中,如 here 所述.

如果您的程序被多次调用,请尝试使用带有 PID 的文件名,如 --log-file=<filename> 的用法中所述here .

只需确保您的输出文件位于易于阅读的位置即可。

关于c++ - 如何将 valgrind 与正在运行的进程相关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18845708/

相关文章:

ios - 覆盖对象……这样可以吗?

c++ - 在 Windows、Visual Studio 2013 上使用 google protobuf 和 cmake 中的库

c++ - 在 C++ 中是否可以禁止在编译时调用某个函数?

php - 传输后数据库无法连接到 Linux 服务器

javascript - 如何在 Node.js 中管理内存

cocoa - 当我运行构建和分析时,我是否应该瞄准没有分析器结果的情况

c++ - timespec.tv_sec 总是返回 0

c++ - 变量周围的调试错误堆栈已损坏

linux - Bash合并文件中的2个连续行

linux -/usr/bin/ld : cannot find -lglfw