KTRACE(1) | FreeBSD General Commands Manual | KTRACE(1) |
名称
ktrace — カーネルプロセスのトレースを有効にする書式
ktrace | [ -aCcdi][ -f trfile][ -g pgrp | -p pid][ -t trstr] |
ktrace | [ -adi][ -f trfile][ -t trstr] command |
解説
ktrace ユーティリティは、指定したプロセスのカーネルのトレースログをとります。カーネルトレース情報は、ファイル ktrace.out に記録されます。トレースされるカーネル動作には、システムコール、namei 変換、シグナル処理、 I/O 処理が含まれます。いったんプロセスのトレースを行うようにすると、トレースデータは、プロセスが終了するか、トレースポイントがクリアされるまで記録され続けます。トレースしたプロセスは、膨大な量のログを急速に作るため、ユーザは、プロセスのトレースを行う前にトレースを取り消す方法を覚えておくことを強くお勧めします。ユーザが実行している全てのプロセスのトレース動作を取り消すには、以下のコマンドで十分です。このコマンドが root 権限で実行された場合には、全てのプロセスに対してトレースの取消しが行われます。
$ ktrace -C
トレースファイルは、人間に解読可能でないので、 kdump(1) を使って解析してください。
このユーティリティは、カーネル設定ファイルの“KTRACE”オプションをつけて構築されたカーネルでのみ使用できます。
オプションは、次の通りです:
- -a
- 既存のトレースファイルを再構築しないで、後ろに追加していきます。
- -C
- ユーザが実行している全てのプロセスのトレース動作をオフにします。 root が実行した場合は、システムのすべてのプロセスのトレースがオフになります。
- -c
- 指定したファイルやプロセスに対するトレースポイントをクリアします。
- -d
- 指定したプロセスの現在の子プロセスすべてに対してトレースを行います。
- -f trfile
- トレース記録を ktrace.out のかわりに trfile に記録します。
- -g pgid
- プロセスグループ内の全てのプロセスのトレースをオン (オフ) にします ( -g フラグは、1 つしか指定できません)。
- -i
- 指定したプロセスが今後生成するすべての子プロセスに対し、トレースフラグを継承させます。
- -p pid
- 指定したプロセス ID のトレースを行います (または、取り消します) ( -p フラグは、1 つしか指定できません)。
- -t trstr
-
この文字列引数は、カーネルトレースポイントの 1 つを 1 文字で表現しています。以下の表は、文字とトレースポイントの対応関係を表しています。
- c
- システムコールのトレース
- f
- トレースページフォルト
- i
- I/O のトレース
- n
- namei 変換のトレース
- p
- ケーパビリティチェックの失敗のトレース
- s
- シグナル処理のトレース
- t
- 様々な構造体をトレース
- u
- ユーザでのトレース
- w
- コンテキストスイッチ
- y
- sysctl(3) 要求をトレースする
- +
- トレースポイントのデフォルト集合、すなわち c, i, n, p, s, t, u, y をトレースします。
- command
- 指定したトレースフラグで command を実行します。
-p, -g, command は、相互に排他的です。同時に利用することはできません。
使用例
# プロセス ID 34 のプロセスすべてのカーネル動作のトレースを行います。$ ktrace -p 34
# プロセスグループ ID 15 のすべてのプロセスのカーネル動作のトレースを
# 行い、現在および未来の子プロセスすべてにトレースフラグを渡します。
$ ktrace -idg 15
# プロセス ID 65 のプロセスのすべてのトレースを取り消します。
$ ktrace -cp 65
# プロセス ID 70 のプロセスとそのすべての子プロセスの、シグナルに関する
# トレースを取り消します。
$ ktrace -t s -cdp 70
# プロセス ID 67 のプロセスの I/O に関するトレースを有効にします。
$ ktrace -ti -p 67
# コマンド "w"を実行し、システムコールのみのトレースを行います。
$ ktrace -tc w
# "tracedata"ファイルに対するすべてのトレースを取り消します。
$ ktrace -c -f tracedata
# ユーザ所有のプロセスのトレースを取り消します。
$ ktrace -C
関連項目
kdump(1)歴史
ktrace コマンドは、 4.4BSD で登場しました。バグ
trfile が通常のファイルの場合だけ動作します。May 31, 2012 | FreeBSD |