EN JA
TRUSS(1)
TRUSS(1) FreeBSD General Commands Manual TRUSS(1)

名称

trussシステムコールをトレースする

書式

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

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

解説

truss ユーティリティは、指定したプロセスやプログラムが呼び出すシステムコールをトレースします。出力は、指定した出力ファイルか、デフォルトでは、標準エラー出力へ送られます。処理は、 ptrace(2) でプロセスを監視し、それを停止させたり再開させて行なわれます。

オプションは、以下の通りです:

-f
元々のトレース対象プロセスが fork(2), vfork(2) 等で作成した子孫プロセスをトレースします。
-a
execve(2) システムコールで渡された引数文字列を表示します。
-c
個別のシステムコールを表示しません。代わりに、終了する前に、次の各システムコールに含まれる概要を印刷します: 使用された合計システム時間、システムコールが呼び出された回数、とシステムコールがエラーで返った回数。
-e
execve(2) システムコールで渡された環境文字列を表示します。
-d
出力中に、トレース開始からの経過時間を示す、タイムスタンプを含めます。
-D
出力中に、最後に記録されたイベントからの経過時間を示す、タイムスタンプを含めます。
-S
プロセスが受信するシグナルについての情報は、表示しません。 (通常、 truss は、システムコールイベントと同様、シグナル情報も表示します。)
-o file
出力を標準エラー出力ではなく、指定したファイル file へ送ります。
-s strsize
多くても strsize 文字までの文字列を表示します。バッファが、より大きいなら、“ ...”が、文字列の終りに表示されます。デフォルトの strsize は、32 です。
-p pid
新しくコマンドを起動するのではなく、指定したプロセス ID pid のプロセスを追います。
command [ args]
コマンド command を実行し、そのシステムコールをトレースします。 (オプション -pcommand は、互いに排他的にしか使用できません。)

使用例

# "hello"を echo する際に使われるシステムコールを追います
$ truss /bin/echo hello
# 同じことをしますが、出力をファイルに書き込みます
$ truss -o /tmp/truss.out /bin/echo hello
# すでに動作しているプロセスを追います
$ truss -p 34

関連項目

kdump(1), ktrace(1), ptrace(2)

歴史

truss コマンドは、 FreeBSD のために Sean Eric Fagan によって書かれました。 System V Release 4 や SunOS で利用可能な類似のコマンドをモデルにしました。
May 12, 2009 FreeBSD