我正在尝试使用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吗?
答案 0 :(得分:0)
您可以尝试
( exec valgrind --leak-check=no --error-limit=no MyApplication $$ )
括号会创建一个子外壳。 $$
扩展为外壳本身的PID。
然后exec
将valgrind
程序加载到当前进程中,这将使其PID保持不变,即valgrind将具有与(子)shell相同的PID。