Strace
Strace可以诊断 调试Linux用户空间 检测进程与内核的交互 系统调用 信号 状态变更等
Args
| -c | 统计 |
| -f | 追踪fork子进程 |
| -ff | 将为每个子进程 |
| -F | 追踪vfork调用 |
| -i | 输出系统调用入口指针 |
| -q | |
| -r | 输出相对时间 |
| -t -tt -ttt | 输出的每一行加入时间 |
| -T | 显示系统调用所需时间 |
| -v | 输出所有调用 |
| -x | 十六进制输出非标准字符串 |
| -xx | 十六禁止输出所有字符串 |
| -e expr | 指定表达式来控制如何追踪 |
| -p pid | 追踪指定的进程 |
| -u user | 以user身份执行 |
-e expr
| trace | 指定追踪的系统调用 |
| abbrev | 输出系统调用的结果集合 |
| verbose | |
| raw | 十六进制显示 |
| signal | 指定追踪的信号 默认all |
trace集合
| file | 与文件相关的系统调用 |
| process | 与进程相关的系统调用 |
| network | 与网络相关的系统调用 |
| signal | 与信号相关的系统调用 |
| ipc | 与进程通讯相关的系统调用 |
Examples
不追踪sigio信号
strace -e signal=!SIGIO
通用用法
strace -o output -T -tt -e trace=file -p pid