打印 STREAMS 跟踪消息。
没有参数的 strace 命令将所有的驱动程序和模块中的所有 STREAMS 事件跟踪消息写到它的标准输出中。 这些消息是从 STREAMS 日志驱动程序中获取的。如果提供参数,它们必须是在三元组中。每个三元组表明跟踪消息要从给定的模块或驱动程序、子标识(通常表明次要设备)以及优先级别等于或小于给定级别的模块或驱动程序中接收。all 标记可由任何成员使用,以表明对该属性没有限制。
mid | 指定 STREAMS 模块的标识号。 |
sid | 指定子标识号。 |
level | 指定跟踪优先级别。 |
每个跟踪消息输出的格式是:
<seq> <time> <ticks> <level> <flags> <mid> <sid> <text>
<seq> | 跟踪序列号 |
<time> | 消息时间(格式为 hh:mm:ss) |
<ticks> | 系统启动后,以机器滴答信号表示消息的时间 |
<level> | 跟踪优先级别 |
<flags> | 有以下值之一: |
<mid> | 源的模块标识号 |
<sid> | 源的子标识号 |
<text> | 跟踪消息的格式化文本
在多处理器系统上,<text> 由两部分组成: |
一旦启动,strace 命令将继续执行,直到用户终止该命令。
注:由于性能的考虑,所以一次只允许一个 strace 命令来打开 STREAMS 日志驱动程序。日志驱动程序有一个三元组的列表(该列表在命令调用中指定),并且程序会根据该列表比较每个潜在的跟踪消息,以决定是否要格式化和发送这个信息到 strace 进程中。因此,长的三元组列表会对 STREAMS 的总体性能的影响更大。 运行 strace 命令对于某些模块和驱动程序(生成要发送给 strace 进程的跟踪消息的模块和驱动程序)的定时的影响最大。 如果跟踪消息生成过快,以至 strace 进程无法处理,那么就会丢失一些消息。 最后的情况可以通过检查跟踪消息输出上的序列号来确定。
strace 41 all all
strace 41 0 1 41 1 1 41 2 0
子标识为 0 和 1 的模块或驱动程序中的消息必须具有小于或等于 1 的跟踪级别。子标识为 2 的模块或驱动程序中的消息必须具有跟踪级别 0。
AIX 5L Version 5.2 Communications Programming Concepts 中的 List of Streams Commands、STREAMS Overview 和 Understanding the log Device Driver。