我正在尝试调试应用程序的启动.我想用它strace
来获取应用程序在启动期间执行的系统调用的跟踪,但是一旦应用程序启动,我就不希望它的性能开销strace
.
如果你strace
正常运行:
strace -f myprogram
然后,如果你试图杀死strace
它,它将取消myprogram
它.
您可以strace
按如下方式附加到正在运行的进程:
strace -f -p
但是很难找到应用程序启动的痕迹.
有没有办法捕获应用程序启动的痕迹,然后分离strace?
一种方法是使用-D
标志strace
,该标志将strace
进程作为被跟踪进程的后代运行.
例如:
strace -f -D myprogram
将开始追踪myprogram
.现在运行:
killall strace
将杀死strace
进程,但myprogram
将继续运行.