启动跟踪工具

使用以下过程配置和启动系统跟踪:

配置 trace 命令

trace 命令启动对系统事件的跟踪、管理跟踪日志文件和收集跟踪事件数据的内部跟踪缓冲区并控制两者大小。 有关此命令的语法的信息,请参阅 trace 守护程序

记录跟踪事件数据

为每个被跟踪事件记录的数据由一个字组成:包含跟踪挂钩标识和挂钩类型,其后跟有数量可变的跟踪数据字并可选择性地后跟一个时间戳记。 包含跟踪挂钩标识和挂钩类型的字称为挂钩字。 挂钩字的剩余两个字节称为挂钩数据并且可用于记录事件数据。

跟踪挂钩标识

跟踪挂钩标识是标识被跟踪事件的三位或四位十六进制数字。 在AIX® 6.1之前以及在AIX 6.1及以上版本上运行的 32 位应用程序中,只能使用三位钩子标识符。 使用跟踪宏 (例如 TRCHKL1) 时,会将跟踪挂钩指定为:
hhh0000
其中 hhh 是挂钩标识。
AIX 6.1 及更高版本上运行的 64 位应用程序和内核例程上,可以使用 3 位和 4 位挂钩标识。 使用跟踪宏 (例如 TRCHKL1) 时,会将跟踪挂钩指定为:
hhhh0000
其中 hhhh 是挂钩标识。
注: 如果使用四位数标识并且该标识小于 0x1000,那么最小有效位数必须为 0 (格式为 0x0hh0)。

三位的标识在其最后一位有效数字中包含一个隐藏的 0,因此 32 位的挂钩标识 hhh 等同于 64 位的挂钩标识 hhh0。

多数跟踪挂钩标识定义在 /usr/include/sys/trchkid.h 文件中。 64 位的应用程序可使用值 0x0100 到 0x0FF0。 32 位的用户应用程序可使用值 0x010 到 0x0FF。 所有其他值均保留给系统使用。 通过使用 trcrpt -j 命令可列示当前定义的跟踪挂钩标识。

使用类属跟踪通道

跟踪工具一次支持多达八个活动跟踪会话。 每一个跟踪会话使用多路复用跟踪特殊文件 /dev/systrace 的一个通道。 跟踪工具使用通道 0 记录系统事件。 对系统事件的跟踪通过 tracetrcstop 命令启动和停止。 通道 1 到 7 称为类属跟踪通道且可以由子系统用于其他类型的跟踪,例如数据链路跟踪。

为了实现使用跟踪工具的类属跟踪通道的跟踪, 子系统调用 trcstart 子例程以激活某跟踪通道并确定通道号。 然后,子系统模块可以记录跟踪事件 TRCGENTRCGENT 宏,或者 trcgentrcgenttrcgenktrcgenkt 子例程。 trcstart 子例程返回的通道号是必须传递给这些子例程的参数之一。 子系统能够使用 trcofftrcon 子例程暂挂和恢复对跟踪数据的收集并且能够使用 trcstop 子例程停用某跟踪通道。 每个通道的跟踪事件将写入独立的跟踪日志文件中,缺省情况下,该文件名为 /var/adm/ras/trcfile.n,其中 n 为通道号。 子系统必须提供用来激活和取消激活子系统跟踪的用户界面。

启动跟踪

使用下列过程之一启动跟踪工具。

  • 通过使用 trace 命令启动跟踪工具。
    异步启动跟踪。 例如:
    trace -a
    mycmd
    trcstop

    当异步使用跟踪工具时,请使用 trace 守护程序跟踪选定的系统事件(例如 mycmd 命令);然后使用 trcstop 命令停止跟踪。

    以交互方式启动跟踪。 例如:
    trace
    ->!mycmd
    ->quit

    以交互方式使用跟踪工具时,进入交互式方式 (由->提示,并使用 trace 子命令 (例如 !) 以跟踪所选系统事件。 使用 quit 子命令停止跟踪。

  • 使用 smit trace 并选择启动跟踪选项。
    smit trace

停止跟踪

使用下列过程之一停止先前启动的跟踪。

  • 在命令行上异步使用 trace 时,请使用 trcstop 命令:
    trace -a
    mycmd
    trcstop

    当异步使用跟踪工具时,请使用 trace 守护程序跟踪选定的系统事件(例如 mycmd 命令);然后使用 trcstop 命令停止跟踪。

  • 当在命令行以交互方式使用 trace时,请使用 quit 子命令:
    trace
    ->!mycmd
    ->quit

    交互方式表示->提示。 使用 trace 子命令 (例如 !) 以跟踪所选系统事件。 使用 quit 子命令停止跟踪。

  • 使用 smit trace 并选择启动跟踪选项:
    smit trace

生成跟踪报告

使用下列过程之一生成已跟踪事件的报告。

  • 使用 trcrpt 命令:
    trcrpt>/tmp/NewFile

    上述示例对跟踪日志文件进行了格式化并将报告发送到 /tmp/newfiletrcrpt 命令读取跟踪日志文件、格式化跟踪条目并编写一个报告。

  • 使用 smit trcrpt 命令:
    smit trcrpt