strace 命令
用途
显示 STREAMS 跟踪消息。
语法
描述
没有参数的 strace 命令将所有的驱动程序和模块中的所有 STREAMS 事件跟踪消息写入它的标准输出。 这些消息是从 STREAMS 日志驱动程序中获取的。 如果提供参数,它们必须是在三元组中。 每个三元组表明跟踪消息要从给定的模块或驱动程序、子标识(通常表明次要设备)以及优先级别等于或小于给定级别的模块或驱动程序中接收。 该all令牌可以用于任何成员,以指示对该属性没有限制。
参数
| 项 | 描述 |
|---|---|
| 中 | 指定 STREAMS 模块的标识号。 |
| sid | 指定子标识号。 |
| 级别 | 指定跟踪优先级别。 |
输出格式
每个跟踪消息输出的格式是:
<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 进程无法处理,那么就会丢失一些消息。 最后的情况可以通过检查跟踪消息输出上的序列号来确定。
示例
- 从模块或驱动程序输出所有跟踪消息,其模块标识为41,请输入:
strace 41 all all - 从驱动程序或模块标识输出这些跟踪消息41具有子标识0,1,或2:
来自子标识的消息0和1必须具有小于或等于 1 的跟踪级别。 来自子标识的那些2必须具有跟踪级别 0。strace 41 0 1 41 1 1 41 2 0