Il frammento probe executableUnit consente di eseguire una raccolta capillare di dati relativi ai metodi che soddisfano la destinazione del probe e le specifiche dei filtri e che forniscono informazioni sul codice di origine.
Una chiamata a questo tipo di frammento viene inserita prima di ciascuna "unità eseguibile" nel metodo di destinazione. Per i metodi che soddisfano le specifiche filtro e di destinazione del probe, ma che non dispongono di informazioni di codice di origine, il frammento viene inserito una sola volta, all'inizio del metodo.
I frammenti executableUnit possono utilizzare tutti i tipi di elementi di dati, fatta eccezione per returnedObject, exceptionObject, isFinally, e thisObject. Ancor più importante, essi possono utilizzare l'elemento di dati executableUnitNumber che contiene il numero di unità eseguibili che stanno per essere eseguite.
Il numero di unità eseguibili in un metodo e nella tabella di righe non comprenderà le unità eseguibili inserite nel metodo da Probekit.
Un'unità eseguibile comincia all'inizio di ciascun blocco di base e in ogni codice byte il cui codice di origine è differente da quello precedente. Un blocco di base è un'area di istruzioni del codice byte che non è possibile né estendere né ridurre. Quando la prima istruzione di un blocco di base viene eseguita, tutte le istruzioni verranno eseguite: in tal modo, le istruzioni verranno considerate come un unico gruppo.
Alcune delle istruzioni con le quali terminano i blocchi di base sono branch, call, throw e return.
Istruzioni quali, ad esempio, "divide" non vengono considerate parte finale di un'unità eseguibile, nonostante possano lanciare un'eccezione. È questo un altro aspetto che evidenzia la differenza, da un punto di vista tecnico, tra un'unità eseguibile e un blocco di base.
Se un metodo Java è privo di informazioni di origine, l'intero metodo viene considerato come se disponesse di una sola unità eseguibile.
Argomento principale: Informazioni di riferimento su Probekit
Riferimenti correlati
Oggetto probe Fragment
Oggetto probe Data
Informazioni correlate
Esempio di ExecutableUnit