strace 命令

用途

显示 STREAMS 跟踪消息。

语法

斯特拉切 [ 锡德 级别 ] ... 

描述

没有参数的 strace 命令将所有的驱动程序和模块中的所有 STREAMS 事件跟踪消息写入它的标准输出。 这些消息是从 STREAMS 日志驱动程序中获取的。 如果提供参数,它们必须是在三元组中。 每个三元组表明跟踪消息要从给定的模块或驱动程序、子标识(通常表明次要设备)以及优先级别等于或小于给定级别的模块或驱动程序中接收。 该all令牌可以用于任何成员,以指示对该属性没有限制。

参数

描述
指定 STREAMS 模块的标识号。
sid 指定子标识号。
级别 指定跟踪优先级别。

输出格式

每个跟踪消息输出的格式是:

<seq> <time> <ticks> <level> <flags> <mid> <sid> <text>
描述
<seq> 跟踪序列号
<time> 消息时间(格式为 hh:mm:ss
<ticks> 系统启动后,以机器滴答信号表示消息的时间
<level> 跟踪优先级别
<flags> 有以下值之一:
:NONE.
消息也在错误日志中
F
表示致命错误
n
邮件已发送给系统管理员
<mid> 源的模块标识号
<sid> 源的子标识号
<text> 跟踪消息的格式化文本

在多处理器系统上,<text> 由两部分组成:

  • 消息所有者发送处的处理器号码,
  • 格式化文本本身。

一旦启动,strace 命令将继续执行,直到用户终止该命令。

注: 出于性能考虑,一次只允许一个 strace 命令打开 STREAMS 日志驱动程序。 日志驱动程序有一个三元组的列表(该列表在命令调用中指定),并且程序会根据该列表比较每个潜在的跟踪消息,以决定是否要格式化和发送这个信息到 strace 进程中。 因此,长的三元组列表会对 STREAMS 的总体性能的影响更大。 运行 strace 命令对于某些模块和驱动程序(生成要发送给 strace 进程的跟踪消息的模块和驱动程序)的定时的影响最大。 如果跟踪消息生成过快,以至 strace 进程无法处理,那么就会丢失一些消息。 最后的情况可以通过检查跟踪消息输出上的序列号来确定。

示例

  1. 从模块或驱动程序输出所有跟踪消息,其模块标识为41,请输入:
    strace 41 all all
  2. 从驱动程序或模块标识输出这些跟踪消息41具有子标识0,1,或2:
    strace 41 0 1 41 1 1 41 2 0
    来自子标识的消息01必须具有小于或等于 1 的跟踪级别。 来自子标识的那些2必须具有跟踪级别 0。