目次

はじめに
1 DTraceについて
1.1 DTraceスタート・ガイド
1.2 プロバイダおよびプローブ
2 Dプログラミング言語
2.1 Dプログラム構造
2.1.1 プローブ節および宣言
2.1.2 プローブ記述
2.1.3 句の述語
2.1.4 プローブのアクション
2.1.5 実行の順序
2.1.6 Cプリプロセッサの使用
2.2 コンパイルおよびインストゥルメンテーション
2.3 変数および算術式
2.4 述語の例
2.5 出力フォーマットの例
2.6 配列の概要
2.6.1 連想配列の例
2.7 外部シンボルおよび型
2.8 型、演算子および式
2.8.1 識別子名およびキーワード
2.8.2 データ型およびサイズ
2.8.3 定数
2.8.4 算術演算子
2.8.5 関係演算子
2.8.6 論理演算子
2.8.7 ビット演算子
2.8.8 代入演算子
2.8.9 インクリメント演算子およびデクリメント演算子
2.8.10 条件式
2.8.11 型変換
2.8.12 演算子の優先順位
2.9 変数
2.9.1 スカラー変数
2.9.2 連想配列
2.9.3 スレッド・ローカル変数
2.9.4 節ローカル変数
2.9.5 組込み変数
2.9.6 外部変数
2.10 ポインタおよびスカラー配列
2.10.1 ポインタおよびアドレス
2.10.2 ポインタの安全性
2.10.3 配列宣言および記憶域
2.10.4 ポインタと配列の関係
2.10.5 ポインタ演算
2.10.6 汎用ポインタ
2.10.7 多次元配列
2.10.8 DTraceオブジェクトへのポインタ
2.10.9 ポインタおよびアドレス空間
2.11 文字列に対するDTraceのサポート
2.11.1 文字列表現
2.11.2 文字列定数
2.11.3 文字列代入
2.11.4 文字列変換
2.11.5 文字列比較
2.12 構造体および共用体
2.12.1 構造体
2.12.2 構造体へのポインタ
2.12.3 共用体
2.12.4 メンバー・サイズおよびオフセット
2.12.5 ビットフィールド
2.13 型と定数の定義
2.13.1 typedef
2.13.2 列挙
2.13.3 インライン
2.13.4 型の名前空間
3 集積体
3.1 集計の概念
3.2 基本集計文
3.3 集計の例
3.3.1 基本集計
3.3.2 キーの使用
3.3.3 avg関数の使用
3.3.4 stddev関数の使用
3.3.5 quantize関数の使用
3.3.6 lquantize関数の使用
3.4 集積体の出力
3.5 データの正規化
3.6 集積体の消去
3.7 集積体の切捨て
3.8 欠落の最小化
4 アクションおよびサブルーチン
4.1 アクション関数
4.1.1 デフォルト・アクション
4.1.2 データ記録アクション
4.1.3 破壊アクション
4.1.4 特殊アクション
4.2 サブルーチン関数
4.2.1 alloca
4.2.2 basename
4.2.3 bcopy
4.2.4 cleanpath
4.2.5 copyin
4.2.6 copyinstr
4.2.7 copyinto
4.2.8 d_path
4.2.9 dirname
4.2.10 getmajor
4.2.11 getminor
4.2.12 htonl
4.2.13 htonll
4.2.14 htons
4.2.15 index
4.2.16 inet_ntoa
4.2.17 inet_ntoa6
4.2.18 inet_ntop
4.2.19 lltostr
4.2.20 mutex_owned
4.2.21 mutex_owner
4.2.22 mutex_type_adaptive
4.2.23 mutex_type_spin
4.2.24 ntohl
4.2.25 ntohll
4.2.26 ntohs
4.2.27 progenyof
4.2.28 rand
4.2.29 rindex
4.2.30 rw_iswriter
4.2.31 rw_read_held
4.2.32 rw_write_held
4.2.33 speculation
4.2.34 strchr
4.2.35 strjoin
4.2.36 strlen
4.2.37 strrchr
4.2.38 strstr
4.2.39 strtok
4.2.40 substr
5 バッファおよびバッファリング
5.1 主バッファ
5.2 主バッファのポリシー
5.2.1 switch Policy
5.2.2 fill Policy
5.2.3fillポリシーおよびENDプローブ
5.2.4 ring Policy
5.3 その他のバッファ
5.4 バッファ・サイズ
5.5 バッファのサイズ変更ポリシー
6 出力フォーマット
6.1 printfアクション
6.1.1 変換指定
6.1.2 フラグ指定子
6.1.3 幅と精度の指定子
6.1.4 サイズ接頭辞
6.1.5 変換フォーマット
6.2 printaアクション
6.3 traceのデフォルト・フォーマット
7 投機トレース
7.1 投機トレースについて
7.2 投機インタフェース
7.3 投機の作成
7.4 投機の使用
7.5 投機のコミット
7.6 投機の破棄
7.7 投機の例
7.8 投機のオプションおよびチューニング
8 dtraceコマンド・リファレンス
8.1 dtraceコマンドの説明
8.2 dtraceコマンドのオプション
8.3 dtraceコマンドのオペランド
8.4 dtraceコマンドの終了ステータス
9 スクリプトの作成
9.1 インタプリタ・ファイル
9.2 マクロ変数
9.3 マクロ引数
9.4 ターゲット・プロセスID
10 オプションおよびチューニング可能パラメータ
10.1 コンシューマ・オプション
10.2 オプションの変更
11 DTraceプロバイダ
11.1 dtraceプロバイダ
11.1.1 BEGINプローブ
11.1.2 ENDプローブ
11.1.3 ERRORプローブ
11.1.4 dtrace安定性
11.2 profileプロバイダ
11.2.1 profile-nプローブ
11.2.2 tick-nプローブ
11.2.3 profileプローブ引数
11.2.4 profileプローブの作成
11.2.5 profの安定性
11.3 fbtプロバイダ
11.3.1 fbtプローブ
11.3.2 fbtプローブ引数
11.3.3 fbtの例
11.3.4 モジュール・ロードおよびfbt
11.3.5 fbt安定性
11.4 syscallプロバイダ
11.4.1 syscallプローブ
11.4.2 syscallプローブ引数
11.4.3 syscallの安定性
11.5 sdtプロバイダ
11.5.1 sdtプローブの作成
11.5.2 sdtの安定性
11.6 pidプロバイダ
11.6.1 pidプローブのネーミング
11.6.2 pidプローブ引数
11.6.3 pid安定性
11.7 procプロバイダ
11.7.1 procプローブ
11.7.2 procプローブ引数
11.7.3 procの例
11.7.4 procの安定性
11.8 schedプロバイダ
11.8.1 schedプローブ
11.8.2 schedプローブ引数
11.8.3 sched例
11.8.4 schedの安定性
11.9 ioプロバイダ
11.9.1 ioプローブ
11.9.2 ioプローブ引数
11.9.3 ioの例
11.9.4 io安定性
11.10 fasttrapプロバイダ
11.10.1 fasttrapプローブ
11.10.2 fasttrap安定性
12 ユーザー・プロセスのトレース
12.1 copyinおよびcopyinstrサブルーチン
12.1.1 エラーの回避
12.2 dtraceの干渉の排除
12.3 syscallプロバイダの使用
12.4 ustackアクション
12.5 uregs[]配列
12.6 Pidプロバイダの使用
12.6.1 ユーザー関数の境界トレース
12.6.2 任意の命令のトレース
13 ユーザー・アプリケーションの静的定義トレース
13.1 プローブ・ポイントの選択
13.2 アプリケーションに対するプローブの追加
13.2.1 プロバイダおよびプローブの定義
13.2.2 アプリケーション・コードに対するプローブの追加
13.2.3 プローブが有効かどうかのテスト
13.2.4 プローブを含むアプリケーションの構築
13.2.5 静的定義プローブの使用
14 カーネル・モジュールの静的定義トレース
14.1 静的プローブ・ポイントの挿入
14.2 静的プローブを含むモジュールの構築
14.3 DTraceによる静的プローブを含むモジュールのテスト
15 パフォーマンスに関する考慮事項
15.1 有効にするプローブの制限
15.2 集計の使用
15.3 キャッシュ可能な述語の使用
16 DTrace安定性機能
16.1 安定性レベル
16.2 依存クラス
16.3 インタフェース属性
16.4 安定性の計算およびレポート
16.5 安定性の強制
17 トランスレータ
17.1 トランスレータの宣言
17.2 xlate D演算子
17.3 プロセス・モデル・トランスレータ
17.4 安定した変換
18 DTraceバージョニング
18.1 バージョンおよびリリース
18.2 バージョニングのオプション
18.3 プロバイダのバージョニング