Fragment sondy typu executableUnit

Fragment sondy typu executableUnit pozwala na zbieranie szczegółowych danych dotyczących metod, które odpowiadają specyfikacji celu sondy oraz w przypadku których dostępne są informacje o kodzie źródłowym.

Wywołanie tego typu fragmentu jest wstawiane przed każdą jednostką wykonywalną znajdującą się w metodzie docelowej. W przypadku metod, które odpowiadają specyfikacji celu sondy, ale nie zawierają informacji o kodzie źródłowym, fragment jest wstawiany raz (na początku metody).

We fragmentach executableUnit mogą być używane wszystkie typy elementów danych, z wyjątkiem typów: returnedObject, exceptionObject, isFinally i thisObject. Najważniejsze jest to, że można w nich używać elementu danych executableUnitNumber zawierającego numer jednostki wykonywalnej, która ma zostać uruchomiona.

Liczba jednostek wykonywalnych w metodzie i w tabelach wierszy nie obejmuje jednostek wykonywalnych wstawionych do metody przez pakiet Probekit.

Jednostki wykonywalne i bloki podstawowe

Początek jednostki wykonywalnej jest tam, gdzie początek każdego bloku podstawowego, oraz przy każdym kodzie bajtowym, którego numer wiersza kodu źródłowego jest inny niż w poprzednim kodzie bajtowym. Blok podstawowy to region instrukcji kodu bajtowego, którego nie można rozgałęziać z innych elementów ani do innych elementów. Po wykonaniu pierwszej instrukcji w bloku podstawowym zostaną uruchomione wszystkie instrukcje (instrukcje są traktowane jak jedna grupa).

Bloki podstawowe kończą się takimi instrukcjami jak branch, call, throw i return.

Niektóre instrukcje, takie jak divide, nie są uważane za koniec jednostki wykonywalnej, mimo że mogą powodować zgłoszenie wyjątku. Jest to jedna z różnic technicznych między jednostką wykonywalną a blokiem podstawowym.

Jeśli z metodą Java nie są powiązane żadne informacje o kodzie źródłowym, uważa się, że cała metoda ma tylko jedną jednostkę wykonywalną.

Informacje pokrewne
Fragmenty sond
Informacje pokrewne
Przykład fragmentu sondy executableUnit