日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
KTRACE(2) FreeBSD システムコールマニュアル KTRACE(2) 名称 ktrace -- プロセスのトレース ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <sys/param.h> #include <sys/time.h> #include <sys/uio.h> #include <sys/ktrace.h> int ktrace(const char *tracefile, int ops, int trpoints, int pid); 解説 ktrace() システムコールは、1 つ以上のプロセスのトレースを有効にするか、ま たは無効にします。ユーザは、自分のプロセスだけをトレースできます。スーパ ユーザだけが、setuid または setgid のプログラムをトレースすることができま す。 tracefile 引数は、トレースのために使用されるファイルのパス名を与えます。 ファイルは、存在しなければならず、呼び出しているプロセスによって書き込み 可能な通常ファイルでなければなりません。すべてのトレースレコードは、常に ファイルに付け加えられるので、ファイルは、前のトレースデータを破棄するた めに、0 の長さに切り詰められなければなりません。トレースポイントが無効に されているなら (下記の KTROP_CLEAR を参照)、tracefile は、空にされます。 ops 引数は、要求された ktrace 操作を指定します。定義された操作は、次の通 りです: KTROP_SET trpoints で指定されたトレースポイントを有効に します。 KTROP_CLEAR trpoints で指定されたトレースポイントを無効に します。 KTROP_CLEARFILE すべてのトレースを停止します。 KTRFLAG_DESCEND トレースの変更は、指定されたプロセスとその現 在のすべての子プロセスに適用するべきです。 trpoints 引数は、関心のあるトレースポイントを指定します。定義されたトレー スポイントは、次の通りです: KTRFAC_SYSCALL システムコールをトレースします. KTRFAC_SYSRET システムコールからの返り値をトレースします. KTRFAC_NAMEI 名前の検索操作をトレースします. KTRFAC_GENIO すべての I/O をトレースします (このオプション は, 多くの出力を生成することに注意してくださ い). KTRFAC_PSIG 投稿されたシグナルをトレースします. KTRFAC_CSW コンテキストスイッチの時点をトレースします. KTRFAC_USER アプリケーション特有のイベントをトレースしま す. KTRFAC_STRUCT 特定のデータ構造をトレースします. KTRFAC_SYSCTL sysctl をトレースします. KTRFAC_PROCCTOR プロセス構築をトレースします. KTRFAC_PROCDTOR プロセス破壊をトレースします. KTRFAC_CAPFAIL ケーパビリティ機能をトレースします. KTRFAC_FAULT ページフィルトをトレースします. KTRFAC_FAULTEND ページフィルトの終りをトレースします. KTRFAC_STRUCT_ARRAY 特定のデータ構造体の配列をトレースします. KTRFAC_INHERIT 将来の子プロセスへのトレースを継承します. 各トレースのイベントは、トレースポイントに特有の構造体が続いている一般的 なヘッダからなるレコードを出力します。一般的なヘッダは、次の通りです: struct ktr_header { int ktr_len; /* バッファの長さ */ short ktr_type; /* トレースレコードの タイプ */ pid_t ktr_pid; /* プロセス ID */ char ktr_comm[MAXCOMLEN+1]; /* コマンド名 */ struct timeval ktr_time; /* タイムスタンプ */ intptr_t ktr_tid; /* was ktr_buffer */ }; ktr_len フィールドは、このヘッダに続いている ktr_type データの長さを指定 します。ktr_pid と ktr_comm フィールドは、レコードを生成するプロセスとコ マンドを指定します。ktr_time フィールドは、レコードが生成された時間 (マイ クロ秒の精度で) を与えます。ktr_tid フィールドは、スレッド ID を保持して います。 一般的なヘッダには、ktr_type レコードの ktr_len バイトが続きます。タイプ 特有レコードは、<sys/ktrace.h> インクルードファイルで定義されています。 SYSCTL 調整変数 次の sysctl(8) 調整変数は、ktrace() の振る舞いに影響します: kern.ktrace.geniosize トレースされた I/O 要求がトレースファイルにログ記録するデータ量の 制限。 kern.ktrace.request_pool 一度にログ記録されるトレースイベントの数の制限。 また、制御プロセスのデバッグ可能性 (p_candebug(9) によって決定されるよう な) は、ktrace() の操作にも影響する sysctl 調整変数。 戻り値 関数 ktrace() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が返され、グローバル変数 errno にエラーを示す値が設定されます。 エラー ktrace() システムコールは、次の場合に失敗します: [ENOTDIR] パス接頭辞の構成要素が、ディレクトリではありません。 [ENAMETOOLONG] パス名の構成要素が 255 文字を越えているか、または、全 体のパス名が 1023 文字を越えています。 [ENOENT] 指定された tracefile が、存在しません。 [EACCES] 検索パーミッションが、パス接頭辞の構成要素のために拒否 されています。 [ELOOP] パス名の変換で、あまりにも多くのシンボリックリンクに遭 遇しました。 [EIO] I/O エラーが、ファイルシステムから読み込むか、または書 き込む間に起こりました。 [EINTEGRITY] 破損したデータが、ファイルシステムから読み込む間に検出 されました。 [ENOSYS] カーネルが、ktrace サポートでコンパイルされませんでし た。 スレッドは、リソースの一時的な不足のために、1 つ以上のトレースのイベント をログ記録することができないかもしれません。この条件は、カーネルによって 記憶され、成功する次のトレース要求は、その ktr_type フィールドに設定され たフラグ KTR_DROP があります。 関連項目 kdump(1), ktrace(1), utrace(2), sysctl(8), p_candebug(9) 歴史 ktrace() システムコールは、4.4BSD ではじめて登場しました。 FreeBSD 13.2 November 2, 2022 FreeBSD 13.2