Met het probefragmenttype executableUnit kunt u nauwkeurig gegevens verzamelen voor methoden die overeenkomen met de doelspecificaties van de probe en waarbij informatie over de broncode beschikbaar is.
Een aanroep van dit type fragment wordt ingevoegd voor iedere uitvoerbare eenheid in de doelmethode. Het fragment wordt één keer ingevoegd aan het begin van de methode voor methoden die voldoen aan de doelspecificaties, maar geen broncodeinformatie hebben.
Een executableUnit-fragment kan werken met alle gegevensitemtypen, behalve returnedObject, exceptionObject, isFinally en thisObject. Het belangrijkste is dat het fragment het gegevensitem executableUnitNumber kan gebruiken. Dit bevat het nummer van de uitvoerbare eenheid die uitgevoerd gaat worden.
In het aantal uitvoerbare eenheden in een methode en in de regeltabellen worden uitvoerbare eenheden die in de methode zijn ingevoerd door Probekit niet meegerekend.
Een uitvoerbare eenheid start aan het begin van ieder basisblok en bij iedere bytecode waarvan het bronregelnummer verschilt van de voorgaande bytecode. Een basisblok is een deel met bytecodeinstructies die niet vertakt kunnen worden of in een vertakking opgenomen. Als de eerste instructie in een basisblok wordt uitgevoerd, worden alle instructies uitgevoerd. De instructies moeten dus als één groep worden beschouwd.
Basisblokken worden beëindigd met instructies als branch, call, throw, en return.
Sommige instructies, bijvoorbeeld divide, worden niet beschouwd als eindinstructies van een uitvoerbare eenheid, ondanks dat ze een uitzondering kunnen verwerpen. Dit is een voorbeeld van het feit dat uitvoerbare eenheden technisch niet hetzelfde zijn als basisblokken.
Als aan een Java-methode geen broninformatie is gekoppeld, wordt de gehele methode geacht slechts één uitvoerbare eenheid te hebben.