ttrace
ttrace config -H
ttrace config -H [ -b bufsz [k | m] ]
ttrace enable -H
ttrace enable -H [ -p processor_id ...]
ttrace disable -H
ttrace disable -H [ -p processor_id ...]
ttrace suspend -H
ttrace resume -H
ttrace dump -H [ -t] [-o output] [-p processor_id ...]
ttrace 实用程序用于管理虚拟机管理程序级别的陷阱跟踪。特权用户可以按需动态启用和禁用跟踪,并根据需要对跟踪进行配置。
不带参数的 ttrace 将显示使用信息。
支持以下选项:
在 sun4v 平台上对虚拟机管理程序陷阱跟踪应用此命令。
为系统中的所有 CPU 设置跟踪缓冲区大小 bufsz。缓冲区大小 bufsz 可以包括后缀 k 或 m。缺省情况下,bufsz 为 2 * PAGESIZE。如果已分配所需大小的缓冲区,则还会对陷阱跟踪进行重新配置,从而用新缓冲区替换旧缓冲区。HV 跟踪缓冲区的上限大小为 16M。
但是,如果由于内存不足而无法分配所需的缓冲区,ttrace 将继续使用先前分配的缓冲区。因此,特定 CPU 上的实际 bufsz 可能与全局 bufsz 不同。
重新配置陷阱跟踪的开销很大,因此不建议在生产计算机上过于频繁地使用此选项。
列出应用相应操作的 CPU。可以接受此选项的子命令为 enable、disable 和 dump。
设置转储跟踪记录时的输出文件。如果省略此选项,则缺省输出为 stdout。
按时间戳顺序遍历所有 CPU 上的跟踪记录。如果省略此选项,则会首先按 CPU 遍历跟踪记录。
支持以下子命令:
对一系列 CPU 启用陷阱跟踪。如果未通过 –p 选项指定 CPU,则会对所有 CPU 启用跟踪。
对一系列 CPU 禁用陷阱跟踪。如果未通过 –p 选项指定 CPU,则会对所有 CPU 禁用跟踪。
暂停对所有 CPU 的陷阱跟踪。可以暂停禁用了跟踪的 CPU;而在恢复后,它仍会处于禁用状态。子命令 suspend 和 resume 比子命令 disable 和 enable 生成的系统开销小。如果要临时停止对所有 CPU 的跟踪,应使用 suspend 和 resume。
将对所有 CPU 的跟踪恢复到暂停前的状态。suspend 和 resume 可对所有 CPU 运行。
如果未指定任何选项,则会显示所有 CPU 的陷阱跟踪状态。如果指定了选项 –b bufsz,则跟踪缓冲区大小将设置为指定的 bufsz,并会重新配置陷阱跟踪。
转储跟踪记录。如果未指定任何选项,则会在终端上显示所有跟踪记录。如果提供了输出文件和 CPU 列表,则只有这些 CPU 上的跟踪才会转储到指定的输出文件。
输出格式可能会在将来有所更改。
CPU 支持以下陷阱跟踪状态。
已分配跟踪缓冲区,因此,跟踪已就绪,可供启用。
已分配并配置跟踪缓冲区,但尚未启用。因此,跟踪已就绪,可供启用。
已启用陷阱跟踪,因此,跟踪缓冲区中的内容将使用 CPU 上的陷阱活动进行更新。
已禁用跟踪陷阱。因此,不会更新跟踪缓冲区中的内容,直到重新启用为止。"Disabled"(已禁用)和 "Enabled"(已启用)状态之间发生的陷阱活动不会反映在跟踪缓冲区中。
已在所有 CPU 上暂停跟踪。
将返回以下退出值:
成功完成。
出现错误。
以下示例说明了如何使用 config 子命令显示每个 CPU 上的当前陷阱跟踪状态及其缓冲区大小。
# ttrace config -H HV trap trace status : CPU Trace-Status buffer size 0 Ready 0x22e70000 32768 1 Ready 0x22950000 32768 2 Ready 0x22958000 32768 3 Ready 0x22960000 32768示例 2 设置跟踪缓冲区大小
以下示例说明了如何使用 config 子命令以及 –b <bufsz> 选项设置跟踪缓冲区大小:
# ttrace config -H -b 64k HV ttrace buffer size has been set to 65536 and recofigured successfully. HV trap trace is ready to be enabled.示例 3 对所有 CPU 启用跟踪
以下示例说明了如何使用 enable 子命令对所有 CPU 启用跟踪:
# ttrace enable -H # ttrace config -H CPU Trace-Status buffer size 0 Enabled 0x22d30000 65536 1 Enabled 0x22d40000 65536 2 Enabled 0x22e70000 65536 3 Enabled 0x22950000 65536
如果使用子命令 enable 以及选项 –p,并提供一个 CPU 列表,则只有在这些 CPU 当前处于禁用状态时,才会对这些 CPU 启用跟踪。
示例 4 对所有 CPU 禁用跟踪以下示例说明了如何使用不带 –p 选项的 disable 子命令对所有 CPU 禁用跟踪。如果提供了 –p 选项,则仅会对列出的 CPU 禁用跟踪。
# ttrace disable -H -p 2 3 # ttrace config -H CPU Trace-Status buffer size 0 Enabled 0x22d30000 65536 1 Enabled 0x22d40000 65536 2 Disabled 0x22e70000 65536 3 Disabled 0x22950000 65536示例 5 暂停对所有 CPU 的陷阱跟踪
以下示例说明了如何暂停对所有 CPU 的陷阱跟踪:
# ttrace suspend -H示例 6 恢复对所有 CPU 的陷阱跟踪
以下示例说明了如何恢复对所有 CPU 的陷阱跟踪。suspend 和 resume 比 disable 和 enable 的效率更高:
# ttrace resume -H示例 7 显示跟踪记录
以下示例说明了如何显示跟踪记录。如果未指定参数,则会在终端上显示所有跟踪记录。如果提供了 –o 选项,并提供了输出文件,则记录将保存到该输出文件中。如果提供了 –p 选项,并提供了 CPU 列表,则仅会保存这些 CPU 的记录。
# ttrace dump -H -o trace.out -p 2 3
如果提供了 –t 选项,则会按时间戳顺序保存 CPU 的跟踪记录,而不是逐个 CPU 进行保存:
# ttrace dump -H -t -o alltrace.out
有关下列属性的说明,请参见 attributes(5):
|