tail head cat sleep
QR code linking to this page

manページ  — KTRACE

名称

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 権限で実行された場合には、 全てのプロセスに対してトレースの取消しが行われます。

    amp;$ 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 が普通のファイルの場合だけ働きます。

歴史

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

KTRACE (1) June 6, 1993

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

The most important thing in the programming language is the name. A language will not succeed without a good name. I have recently invented a very good name and now I am looking for a suitable language.
— Donald Knuth