strace命令允许我们跟踪程序执行的系统调用,对于调试程序或程序做些什么非常有帮助

    1. strace command arg...
    2. -o:默认其输出到stderr,-o filename 可以指定输出路径
    3. -v:字段是结构体,则显示整个结构体
    4. -s:字符串以文本显示,最长32字符,-s strsize 可以设置上限
    5. -e:选择要跟踪的事件
    6. -p:指定进程,非特权用户只能跟踪自己以及那些没有设置用户ID或组ID的程序
    7. -c:打印出所有系统调用的概要,包括调用次数,失败次数,花费时间等
    8. -f:使得子进程也能跟踪

    strace的输出一般很长,因为包含了C运行时库启动代码以及家加装共享库时执行的系统调用,可进行过滤

    1. strace date 2>&1 | grep open
    2. // 跟踪open和close系统调用
    3. strace -e trace=open, close date