我正在尝试使用 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。
然后 exec
将 valgrind
程序加载到当前进程中,这会使其 PID 保持不变,即 valgrind 将与(子)shell 具有相同的 PID。
关于c++ - 查找 Valgrind PID 以调用应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39490024/