executableUnit プローブ・フラグメント型を使用すると、 プローブのターゲット指定と一致し、ソース・コード情報が使用可能になっているメソッドについて、 きめ細かいデータ収集を実行することができます。
このフラグメント型に対する呼び出しは、ターゲット・メソッド内の各実行可能単位 の前に挿入されます。 プローブのターゲット指定と一致するが、ソース・コード情報が無いメソッドの場合、 フラグメントはメソッドの最初に 1 度だけ挿入されます。
executableUnit フラグメントでは、returnedObject、exceptionObject、isFinally、 および thisObject を除いて、すべてのデータ項目型を使用できます。 最も重要なのは executableUnitNumber データ項目を使用できることで、 これには、実行しようとしている実行可能単位の番号が入ります。
メソッド内および行テーブル内の実行可能単位の数には、Probekit によって メソッドに挿入された実行可能単位は含まれません。
実行可能単位は、各基本ブロックの最初、および 直前のバイトコードと異なるソース行番号を持つ各バイトコードで始まります。 基本ブロックは、ブランチで出たり、ブランチで入ったりすることができないバイト・コード命令の領域です。 基本ブロック内の最初の命令が実行されると、すべての命令が実行されるので、それらの命令は単一グループと見なされます。
基本ブロックは、branch、call、throw、および return などの命令で終ります。
命令の中には、例外をスローできるにもかかわらず、 実行可能単位の終わりとは見なされないものもあります (例えば、divide など)。 これは、実行可能単位が基本ブロックと技術的に同等ではないことを示す、1 つの相違点です。
Java™ メソッドが関連したソース情報を持っていない場合は、 そのメソッド全体が単一の実行可能単位のみを持つものと見なされます。