KTRACE

Section: User Commands (1)
索引 jman

BSD mandoc
 

索引

名称

ktrace - カーネルプロセスのトレースを行う  

索引

書式

[-aCcdi ] [-f trfile ] [-g pgrp | -p pid ] [-t trstr ] [-adi ] [-f trfile ] [-t trstr ] command  

索引

解説

ユーティリティは、指定したプロセスのカーネルのトレースログを とります。カーネルトレース情報はファイル ktrace.out に記録されます。 トレースされるカーネル動作には、 システムコール、namei 変換、シグナル処理、 I/O 処理が含まれます。

いったんプロセスのトレースを行うようにすると、トレースデータは プロセスが終了するか、トレースポイントがクリアされるまで記録され続けます。 トレースしたプロセスは膨大な量のログを急速に作るため、ユーザはプロセスの トレースを行う前にトレースを取り消す方法を覚えておくことを強くお勧めします。 ユーザが実行している全てのプロセスのトレース動作を取り消すには、 以下のコマンドで十分です。このコマンドが root 権限で実行された場合には、 全てのプロセスに対してトレースの取消しが行われます。

$ ktrace -C

トレースファイルはそのままでは読めませんので、 kdump(1) を使って解析してください。

オプションとしては、以下のものがあります。

-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
システムコールのトレース
n
namei 変換のトレース
i
I/O のトレース
s
シグナル処理のトレース
u
ユーザでのトレース
w
コンテキストスイッチ
+
トレースポイントのデフォルト集合、すなわち c , n , i , s , u をトレースします。

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)  

索引

バグ

trfile が普通のファイルの場合だけ働きます。  

索引

歴史

コマンドは BSD 4.4 から実装されました。


 

索引

Index

名称
書式
解説
使用例
関連項目
バグ
歴史

jman



Time: 07:06:10 GMT, January 12, 2009