编程接口指南

运行 apptrace

apptrace 实用程序不要求对所跟踪的应用程序进行任何修改。要使用 apptrace,请键入 apptrace,后跟所需的任何选项以及用于运行有用的应用程序的命令行。apptrace 实用程序运行时可使用运行时链接程序的链接审计功能来拦截应用程序对 Solaris 库接口的调用。然后,apptrace 实用程序会通过列显调用参数的名称和值来跟踪调用并返回值。跟踪输出可以显示为一行,也可以分为多行以便于阅读。公共接口按人工可读的形式进行列显。专用接口以十六进制进行列显。

apptrace 实用程序允许有选择性跟踪调用,既可以跟踪各接口级调用,也可以跟踪库级调用。例如,apptrace 可以跟踪来自 libnslprintf() 调用,也可以跟踪特定库内某个范围的调用。apptrace 实用程序还可以详细跟踪用户指定的调用。指示 apptrace 行为的规范会通过语法进行制约,此语法与 truss(1) 的用法一致。-f 选项用于指示 apptrace 遵循派生的子进程。-o 选项用于指定存储 apptrace 结果的输出文件。

apptrace 实用程序仅跟踪库级调用,并可装入运行的应用程序进程中,从而可以提高性能(比使用 truss 时的性能要高)。但使用 printf 则除外,在这种情况下 apptrace 无法跟踪对接受变量列表的函数的调用,也无法检查栈或其他调用方信息,例如 setcontextgetcontextsetjmplongjmpvfork