TRPT(8)

名称
trpt - プロトコルトレースの表示

書式
trpt [-a] [-f] [-j] [-p hex-address] [-s] [-t] [ system [core]]

解説
trpt は、socket に “デバッグ情報の記録” を指示した時 ( setsockopt(2) を参照) に生成される、 TCP のトレースレコードの内容を表示します。 オプションを指定しない場合には、 trpt は、システム中のすべてのトレースレコードを、 TCP コネクションのプロトコル制御ブロック (protorol control block; PCB) によってグループ化して表示します。

以下のオプションを使ってこの動作を変更することができます:

-a  通常の出力に加えて、 記録された各パケットの送信元と宛先のアドレスを表示します。

-f  トレースが記録される毎にそれを表示します。 ログの終りまで表示すると、しばらく次のレコードを待ちます。

-j  トレースレコードの存在する PCB (protocol control block) のアドレスの一覧を 表示します。

-p  16 進数で指定されたアドレス( hex-address )にある PCB についてのトレースレコードのみを 表示します。

-s  通常の出力に加えて、パケットのシーケンス情報の詳細を表示します。

-t  通常の出力に加えて、トレースの各時点でのすべてのタイマの値を表示します。

trpt は、以下のようにして使ってみて下さい。 問題となっているコネクションを切り分けて、それに関わる socket に対して デバッグ機能を有効にします。 netstat(1) コマンドの -A オプションを使用して、その socket の PCB のアドレスを見つけます。 そして、 -p オプションと PCB アドレスを引数にして trpt を実行します。 -f オプションを使うと、一度見つけたトレースログを追い続けることができます。 デバッグオプションを使っている socket がたくさんある場合には、 問題になっている socket にトレースレコードがあるかどうかを -j オプションによって確かめる事ができます。

デフォルト以外のカーネルやメモリイメージをデバッグしたいときには、 最後の 2 つの引数で指定する事ができます。

関連ファイル
/kernel
/dev/kmem

関連項目
netstat(1), setsockopt(2)

診断

no namelist トレースバッファを見つけるのに必要なシンボルがシステムイメージに 見つかりません。 その他のメッセージは読めば分かるでしょう。

バグ
入出力されたデータも表示するべきですが、トレースレコードには 記録されていません。

出力フォーマットは非常に難解なので、このマニュアルに説明されて いるべきです。

歴史
trpt コマンドは、 4.2BSD で登場しました。