KDUMP(1) | FreeBSD General Commands Manual | KDUMP(1) |
名称
kdump — カーネルのトレースデータを表示する書式
kdump | [ -dEnlHRsTA][ -f trfile][ -m maxdata][ -p pid][ -t trstr] |
解説
kdump コマンドは、人間に読み込み可能な形式で ktrace(1) で作成されたカーネルトレースファイルを表示します。デフォルトで、カレントディレクトリのファイル ktrace.out が表示されます。オプションは、次の通りです:
- -d
- すべての数値を 10 進数で表示します。
- -E
- 経過したタイムスタンプ (トレースの始めからの時間) を表示します。
- -f trfile
- ktrace.out の代わりに指定されたファイルを表示します。
- -H
- 利用可能であるなら、各トレース記録でスレッドのスレッド ID (tid) をリストします。スレッド ID が利用可能でないなら、0 が印刷 (表示) されます。
- -l
- トレースファイルを繰り返し読み込みます、いったんファイルの終りに到達すると、それ以上のデータが書き込まれるのを待ちます。
- -m maxdata
- I/O をデコードするとき、多くても maxdata バイトを表示します。
- -n
- 特別の変換を抑制します。通常、 kdump は、多くのシステムコールをより人間に読み込み可能な形式にデコードすることを試みます。例えば、 ioctl(2) 値は、マクロ名に置き換えられ、 errno 値は、 strerror(3) 文字列に置き換えられます。この機能を抑制することは、より一貫した出力形式を生成し、処理を促進することに容易に従います。
- -p pid
- プロセスまたはスレッド pid に対応するトレースイベントのみを表示します。同一のトレースファイルに記録された複数プロセスまたはスレッドがあるとき、役に立ちます。
- -R
- (前のエントリ以来の時間である) 相対的なタイムスタンプを表示します。
- -r
- STRU レコードをデコードするとき、数値の代わりにシンボルで、 UID、GID、日付など、のような構造体メンバを表示します。
- -s
- I/O データの表示を抑制します。
- -T
- (UNIX のエポック時刻以来の秒数である) 各エントリのための絶対的なタイムスタンプを表示します。
- -A
- トレースされたプロセスの ABI の記述を表示します。
- -t trstr
- ktrace(1) の -t オプションを参照してください。
kdump の出力形式は、いくつかのフィールドに置かれた行です。下記の例は、次のコマンドによって生成された kdump のセクションを示しています:
?> ktrace echo "ktrace" ?> kdump 85045 echo CALL writev(0x1,0x804b030,0x2) 85045 echo GIO fd 1 wrote 7 bytes "ktrace " 85045 echo RET writev 7
最初のフィールドは、トレースされているプロセスの PID です。 2 番目のフィールドは、トレースされているプログラムの名前です。 3 番目のフィールドは、カーネルがプロセスに代わって実行した操作です。スレッド ID が印刷 (表示) されているなら、追加のスレッド ID カラムが、PID フィールドとプログラム名フールドの出力の間に追加されます。
上記の最初の行で、カーネルは、プロセスに代わって writev(2) システムコールを実行するので、これは、 CALL
操作です。 4 番目のフィールドは、その引数を含めて実行されたシステムコールを示しています。 writev(2) システムコールは、ファイル記述子、この場合は、1 または標準出力、次に書き込む iovector へのポインタと書き込まれることになっている iovector の数を取ります。 2 番目の行で、操作は、一般的な I/O のための GIO
で、ファイル記述子 1 が、それに 7 バイトを書き込んだことがわかります。これに、文字列“ ktrace
”にキャリッジリターンと改行を付けて、書き込まれた 7 バイトが続きます。最後の行は、どのシステムコールから返り、プロセスが受け取った値を返し、カーネルから返ったことを示す、 RET
操作です。 7 バイトが writev(2) システムコールによって書き込まれるので、7 が返り値です。
指定できる操作は、次の通りです:
名前 | 操作 | 4 番目のフィールド |
CALL |
システムコールに入る | システムコール名と引数 |
RET |
システムコールから返る | システムコール名と返り値 |
NAMI |
検索するファイル名 | ファイルへのパス |
GIO |
一般的 I/O | fd, read/write, バイトの数 |
PSIG |
シグナル | シグナル名, ハンドラ, マスク, コード |
CSW |
コンテキストスイッチ | stop/resume user/kernel wmesg |
USER |
ユーザプロセスからのデータ | データ |
STRU |
様々なシステムコール | 構造体 |
SCTL |
sysctl(3) 要求 | MIB 名 |
PFLT |
ページフォルトに入る | フォルトアドレスとタイプ |
PRET |
ページフォルトから返る | フォルト結果 |
関連項目
ktrace(1)歴史
kdump コマンドは、 4.4BSD で登場しました。June 4, 2012 | FreeBSD |