D スクリプト言語の構文2009年03月14日 00時33分56秒

dtrace には専用の言語、D スクリプト言語がある。検査点の名前を表示するだけでなく何らかの処理を行ないたい場合は、この言語で書かれたファイルを用いる。プログラム言語としては珍しく awk 型の、パターン・アクションの構文を持つ。

D Program Structure に説明がある。以下に要点をまとめた。

D スクリプト言語は以下の形を取る。


検査点 [, 検査点]
/ 条件 /
{
    動作;
}

カンマで区切ることにより複数の検査点を羅列できる。

また、検査点にはシェルと同じメタ文字が使える。

*
空文字を含めて、全ての文字列に適合する。
?
任意の一文字に適合する。
[ ... ]
括弧の中に羅列された文字列の一つに適合する。二つの文字をハイホン「-」で繋ぐと、その範囲の文字が適合する。最初の文字がエクスクラメーションマーク「!」の場合は、羅列されていない文字に適合するようになる。
\
次に続く文字の特殊効果を無効にする。エスケープ文字。

条件はスラッシュ「/」に挟んで記述する。これらは検査点に処理が移って来た時に、真に評価された時に動作部分の実行される。この条件は省略可能である。D スクリプト言語では、0 が偽に、0 以外が真と評価される。

動作を括弧「{}」内に記述する。動作にはセミコロン「;」で区切られた複数の動作を並べることが出来る。空の動作を用いて、検査点を兎得りすぎたことを調べることも出来る。 -C オプションを用いることで、D スクリプト言語でも、C 言語の cpp プリプロセッサを呼ぶことが出来る。

dtrace 実行環境は実行時のエラー処理を行なうので、ゼロ除算や不正なメモリへのアクセスが起こると報告される。その為、dtrace がカーネルやプロセスを破壊するようなことは起こらない。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2009/03/14/4175337/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。