strace 可以跟踪一个应用程序所有的系統调用及调用后获得的返回值
-o $file
指定输出文件,默认输出到终端
打开另一个终端就可以在目录下找到 strace.log 文件,例如查看 vim
在启动时读取的所囿配置文件:
-e $func
只跟踪指定的系统调用
可以得到 vim
的进程号为 8599运行:
运行一段时间后退出,可以看到终端返回所有系统调用的次数耗时等信息:
在跟踪运行着的进程时也可以通过 Ctrl-C
来获得统计信息而不退出进程。
-f 可以跟踪所有由 fork 产生的子进程(vfork不被跟踪)
-F 会尝试跟踪 vfork 的调用
-ff 如果有 -o $file则所有进程的跟踪结果会输出到 $file.$ 中,其中 $ 为各进程的进程号
-t 输出时加上时间信息
-tt 输出时加上时间信息(微秒级)
-T
输出加上每次系统調用消耗的时间
-v 输出完整的系统调用信息(默认部分频繁使用的调用不输出)