Probefragmenttypen executableUnit

Med probefragmenttypen executableUnit kan du udføre finkornet dataopsamling til metoder, der matcher probens målspecifikationer, og som har kildekodeoplysninger til rådighed.

Et kald til denne fragmenttype indsættes før alle eksekvérbare enheder i målmetoden. I forbindelse med metoder, der matcher probens målspecifikationer, men som ikke har nogen kildeoplysninger, indsættes fragmentet én gang i begyndelsen af metoden.

Et executableUnit-fragment kan bruge alle dataelementtyper undtagen returnedObject, exceptionObject, isFinally og thisObject. Det vigtigste er, at fragmentet kan anvende dataelementet executableUnitNumber, som indeholder nummeret på den eksekvérbare enhed, der skal til at blive udført.

Antallet af eksekvérbare enheder i en metode og i linjetabellerne omfatter ikke de eksekvérbare enheder, der er indsat i metoden af Probekit.

Eksekvérbare enheder og basisblokke

En eksekvérbar enhed begynder i starten af hver basisblok og ved hver bytekode, hvis kildelinjenummer er forskelligt fra den tidligere bytekode. En basisblok er et område med bytekodeinstruktioner, som du ikke kan afslutte undervejs eller starte midt i. Når den første instruktion i en basisblok udføres, udføres alle instruktioner. Derfor anses instruktionerne for at være én enkelt gruppe.

Basisblokke afsluttes med instruktioner som f.eks. branch, call, throw og return.

Visse instruktioner, f.eks. divide, anses ikke som afslutningen på en eksekvérbar enhed, til trods for at de kan sende en undtagelse. Det er ét af aspekterne ved, at en eksekvérbar enhed teknisk set ikke er det samme som en basisblok.

Hvis en Java-metode ikke har nogen tilknyttede kildeoplysninger, anses hele metoden for kun at indeholde én eksekvérbar enhed.

Relateret reference
Probefragmenter
Relaterede oplysninger
Eksempel på probefragmentet executableUnit