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