truss快速起步
truss 即 trace system calls ,用于跟踪特定进程或程序的系统调用。输出是指定的问津啊或标准错误输出。 truss 是同通过 ptrace 的监控进程停止和启动来实现。
备注
truss 类似于Linux平台的 strace系统调用跟踪 ,是一种记录和显示进程产生的系统调用(System Calls)以及接收到的信号(Signals)
当遇到程序在某个地方卡住了,或者莫名其妙退出, truss 能够看到进程最后在和内核之间如何交互的。
注意, truss 基于 ptrace 或内核钩子,会暂停进程执行。 truss 跟踪仅限于应用层与内核的边界(系统调用)。其跟踪开销很大,由于频繁的上下文,被跟踪程序会变得很慢。
truss 的优点是使用方便,但是仅限于看到进出内核的系统调用,所以透视能力有限。
通常想要快速查看某个进程为什么 open() 失败或者为什么 exit() ,使用 truss 会比较容易定位。但是如果要排查生产环境的性能瓶颈、死锁或复杂的内核行为,则需奥使用 dtrace 。