找到Valgrind PID来调用应用程序

时间:2016-09-14 12:06:16

标签: 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吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试

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

括号会创建一个子外壳。 $$扩展为外壳本身的PID。

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