Probekit の概説

Probekit は、プローブの記述と使用のための Eclipse プラットフォーム上のフレームワークです。 プローブは、プログラムに挿入可能な Java™ コード・フラグメントであり、実行時にそのプログラムに関する情報を提供します。

プローブを理解するには、ここで解説されているサンプル・プローブから開始してください。 これは、プログラムの実行時に呼び出されるすべてのメソッドを識別するメッセージを出力する基本プローブです。

プローブは、Probekit エディターで作成するエントリーによって定義されます。このサンプルには、単一のフラグメントが含まれています。フラグメントは、プローブが行うことを決定します。フラグメント定義には、以下のようなものがあります。

以下に、プローブが Probekit エディターでどのように表示されるかを示します。

ヘルプ・トピックに記述されている基本コード・サンプルのエントリーを表示する Probekit エディター。

Probekit エディターを使用してプローブを作成すると、そのプローブをプロジェクトのクラスおよび JAR ファイルに適用できます。そして、プロジェクトの実行時に、フラグメント・コードがプログラムと同調して実行します。

以下に、プローブの作成および使用方法、および Probekit の利点に関する概説を示します。
  1. Probekit ソース・ファイルにプローブを作成するためには、Probekit エディターを使用します。Probekit ソース・ファイルの拡張子は .probe でなければなりません。Probekit ソース・ファイルには、1 つまたは複数のプローブを組み込み、各プローブに 1 つまたは複数のプローブ・フラグメントを組み込むことができます。
  2. Probekit は、プローブ・フラグメントを一連の Java メソッドにアセンブルして、コンパイルします。Probekit は、プローブのコンパイル時に、プローブ・フラグメントと標準 Java 定形文面を結合し、新規プローブ・クラスの Java ソース・コードを生成します。プローブ・フラグメントから生成された関数は、新規プローブ・クラスの静的メソッドとして現れます。
  3. プローブの適用時に、調査対象のターゲット・クラスおよび JAR ファイルを指定します。Probekit バイトコード・インスツルメンテーション (BCI) エンジンが、使用可能なプローブのリストおよびそれらのターゲット・パターンを参照して、プローブ・フラグメント・メソッドへの呼び出しをターゲット・プログラムに挿入します。呼び出しステートメントをターゲット・メソッドに挿入する処理をインスツルメンテーション (装備) といいます。装備されたメソッドが組み込まれたクラスは、プローブ済みクラスといいます。プローブ・フラグメントによって要求されるデータ項目 (例えば、メソッドの名前やクラス名など) は引数として渡されます。
  4. アプリケーションが装備された後。プローブ・フラグメントは、プログラムの実行時に実行されます。
プローブ・フラグメントは、プログラムがいつ実行されるのかを決定します。以下の場合にフラグメントを実行させる型を指定できます。

プローブ・フラグメントは、それらのプローブ・フラグメントが挿入された場所におけるアプリケーションに関するさまざまな種類の情報を提供する、データ項目にアクセスできます。以下に例を示します。

プローブを特定のクラスおよびメソッドにのみ適用するには、ターゲットを指定するかフィルターをセットアップします。詳しくは、『プローブのターゲットとフィルター』を参照してください。

関連概念
プローブの操作
メソッド・プローブと Callsite プローブ
関連参照
Probekit の例