cod*_*ter 2 linux strace trace
我有一个这样的管道:
command1 | command2
Run Code Online (Sandbox Code Playgroud)
有没有办法同时跟踪两个命令?
小智 7
您可以通过以下方式获得单个跟踪:
strace -f sh -c 'command1 | command2'
Run Code Online (Sandbox Code Playgroud)
“-f”将“跟随”进入子进程的 fork 调用(因此您还将获得由 command1 或 command2 调用的任何子命令,这可能是也可能不是您想要的。)此外,您将获得一个sh过程也有迹可循。如果您希望每个进程在单独的文件中输出,“-ff”选项将跟踪子进程并将 PID 附加到“-o”文件名,如下所示:
strace -ff -o trace sh -c 'command1 | command2'
Run Code Online (Sandbox Code Playgroud)
这应该trace.<PID>为每个分叉的孩子创建单独的文件。