EN JA
KTRACE(1)
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