跳到主要内容

程序调试

strace

strace 是个功能强大的 Linux 调试分析诊断工具,可用于跟踪程序执行时进程系统调用(system call)和所接收的信号,尤其是针对源码不可读或源码无法再编译的程序。在 Linux 系统中,用户进程不能直接访问计算机硬件设备。当进程需要访问硬件设备(如读取磁盘文件或接收网络数据等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace 可跟踪进程产生的系统调用,包括参数、返回值和执行所消耗的时间。若 strace 没有任何输出,并不代表此时进程发生阻塞;也可能程序进程正在执行某些不需要与系统其它部分发生通信的事情。strace 从内核接收信息,且无需以任何特殊方式来构建内核。