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 を実行し、そのシステムコールをトレースします。 (オプション
-p と
command は、互いに排他的にしか使用できません。)
使用例
# "hello"を echo する際に使われるシステムコールを追います
$ truss /bin/echo hello
# 同じことをしますが、出力をファイルに書き込みます
$ truss -o /tmp/truss.out /bin/echo hello
# すでに動作しているプロセスを追います
$ truss -p 34
歴史
truss コマンドは、
FreeBSD のために
Sean Eric Fagan によって書かれました。 System V Release 4 や SunOS で利用可能な類似のコマンドをモデルにしました。