c++ - 查找 Valgrind PID 以调用应用程序

标签 c++ bash valgrind pid

我正在尝试使用 valgrind 工具运行应用程序。但是应用程序需要调用应用程序作为参数的父进程 ID。

valgrind --leak-check=no --error-limit=no MyApplication {Parent_Process_ID}

但由于 valgrind 进程仍在启动,我无法从 bash 获取 pid。我尝试了以下方式作为以前的进程pid。

valgrind --leak-check=no --error-limit=no MyApplication $!

但它给出了在 valgrind 之前运行的进程的进程 ID。

有人可以帮我在这里获取 valgrind 的 pid 吗?

最佳答案

你可以试试

( exec valgrind --leak-check=no --error-limit=no MyApplication $$ )

括号创建了一个子shell。 $$ 扩展为 shell 本身的 PID。

然后 execvalgrind 程序加载到当前进程中,这会使其 PID 保持不变,即 valgrind 将与(子)shell 具有相同的 PID。

关于c++ - 查找 Valgrind PID 以调用应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39490024/

相关文章:

c++ - 如果在 std::wstring 声明和 std::setlocale() 之后调用,则 mbrlen() 无法返回

bash - 在 Windows 上的 Ubuntu 上的 Bash 中复制粘贴

c - 错误valgrind,但没有内存泄漏

c++ - 将 R 中的 SEXP 转换为 C++ 中的字符串 vector

c++ - 如何在 C++ 中使用 OpenCV 在相机视觉上检测雨水

c++ - 概念可以替换模板关键字的所有其他实例吗?

python - Apache httpd 不加载 .bashrc

c - Linux 上的 Bash 权限被拒绝

valgrind - 启动-停止-守护进程和 Valgrind

c - Valgrind 错误 : invalid write of size 4 (but says error is in free() )