Solaris 動的トレースガイド

バージョン管理オプション

デフォルトでは、dtrace -s または dtrace -P-m-f-n-i などを指定してコンパイルした D プログラムは、D コンパイラが提供する最新の D プログラミングインタフェースバージョンに結合されます。現在の D プログラミングインタフェースのバージョンを確認するには、dtrace -V コマンドを実行します。


$ dtrace -V
dtrace: Sun D 1.0
$

特定のバージョンの D プログラミングインタフェースに結合したい場合は、適切なバージョン文字列に version オプションを設定します。その他の DTrace オプションと同じく (第 16 章オプションとチューニング可能パラメータを参照)、バージョンオプションを設定するときは、コマンド行で dtrace -x を実行します。


# dtrace -x version=1.0 -n 'BEGIN{trace("hello");}'

#pragma D オプション構文を使って、D プログラムソースファイルにオプションを設定することもできます。

#pragma D option version=1.0

BEGIN
{
	trace("hello");
}

#pragma D option 構文を使ってバージョン結合を要求する場合は、この指令を D プログラムファイルの最上部、その他の宣言やプローブ節よりも前に置く必要があります。バージョン結合引数が有効なバージョン文字列でない場合、または D コンパイラから提供されていないバージョンを参照している場合、エラーメッセージが出力され、コンパイルは失敗します。このため、バージョン結合機能を使えば、古いバージョンの DTrace 上で D スクリプトが実行された場合に、わかりやすいエラーメッセージを出して失敗させることもできます。

D コンパイラは、プログラムの宣言や節をコンパイルする前に、インタフェースのバージョンに合った D 型、関数、定数、およびトランスレータから成るセットを、コンパイラ名前空間にロードします。したがって、プログラム内で定義されている変数、型、およびトランスレータに加えて、このプログラムからアクセスできる識別子、型、およびトランスレータから成るセットも、ユーザーが指定したバージョン結合オプションによって制御されます。バージョン結合されていると、プログラムのソースコード内の宣言と矛盾する (したがってコンパイルエラーの原因となる) 識別子やトランスレータの定義が含まれるような新しいインタフェースが、D コンパイラによってロードされることはありません。将来のバージョンの DTrace が提供するインタフェースと矛盾しない識別子名を選択する方法については、「識別子名とキーワード」を参照してください。