For the complete documentation index, see llms.txt. This page is also available as Markdown.

truss(1)

truss — 跟踪系统调用

名称

truss

概要

truss [-facedDHS] [-o file] [-s strsize] -p pid

truss [-facedDHS] [-o file] [-s strsize] command [args]

描述

truss 实用程序跟踪指定进程或程序所调用的系统调用。输出到指定输出文件,默认为标准错误。它通过 ptrace(2) 停止并重启被监视的进程来实现此功能。

选项如下:

-f 跟踪由 fork(2)、vfork(2) 等创建的原始被跟踪进程的后代。为区分进程间的事件,每次事件的输出中包含进程的进程 ID(PID)。

-a 显示每次 execve(2) 系统调用中传递的参数字符串。

-c 不显示单个系统调用或信号。而是在退出前打印摘要,包含每个系统调用的:使用的总系统时间、调用次数以及调用返回错误的次数。

-e 显示每次 execve(2) 系统调用中传递的环境字符串。

-d 在输出中包含时间戳,显示自跟踪开始以来流逝的时间。

-D 在输出中包含时间戳,显示自上次记录事件以来流逝的时间。

-H 在每次事件的输出中包含线程 ID。

-S 不显示进程接收到的信号信息。(通常,truss 同时显示信号和系统调用事件。)

-o file 将输出打印到指定的 file 而非标准错误。

-s strsize 显示字符串时最多使用 strsize 个字符。如果缓冲区更大,字符串末尾将显示 "..."。默认 strsize 为 32。

-p pid 跟踪由 pid 指定的进程,而非新命令。

command [args] 执行 command 并跟踪其系统调用。(-pcommand 选项互斥。)

实例

跟踪用于回显 "hello" 的系统调用:

与上例相同,但将输出写入文件:

跟踪一个已在运行的进程:

参见

dtrace(1), kdump(1), ktrace(1), ptrace(2), utrace(2), sysdecode(3)

历史

truss 命令由 Sean Eric Fagan 为 FreeBSD 编写。它仿照 System V Release 4 和 SunOS 上可用的类似命令。

最后更新于

这有帮助吗?