El tipo de fragmento de sonda executableUnit

El tipo de fragmento de sonda executableUnit le permite recoger datos de manera precisa para los métodos que coinciden con las especificaciones de destino de la sonda, y que disponen de información de código fuente.

Una llamada a este tipo de fragmento se inserta antes de cada unidad ejecutable en el método destino. En el caso de los métodos que coinciden con las especificaciones de destino de la sonda pero no tienen información de código fuente, el fragmento se inserta una vez, al principio del método.

Un fragmento executableUnit puede utilizar todos los tipos de elementos de datos excepto returnedObject, exceptionObject, isFinally y thisObject. Y lo que es más importante, puede utilizar el elemento de datos executableUnitNumber, que contiene el número de la unidad ejecutable que está a punto de ejecutarse.

El número de unidades ejecutables de un método y de las tablas de líneas no incluyen las unidades ejecutables que Probekit ha insertado en el método.

Unidades ejecutables y bloques básicos

Una unidad ejecutable empieza al principio de cada bloque básico y en cada código de bytes cuyo número de línea fuente es distinto del código de bytes anterior. Un bloque básico es una región de instrucciones de código de bytes que no puede ramificarse ni formar parte de ninguna ramificación. Cuando se ejecuta la primera instrucción de un bloque básico, se ejecutan todas las instrucciones, de modo que se considera que las instrucciones constituyen un único grupo.

Los bloques básicos terminan con instrucciones como, por ejemplo, branch, call, throw y return.

Algunas instrucciones, como por ejemplo divide," no se consideran como el final de una unidad ejecutable, a pesar de que pueden lanzar una excepción. Éste es otro aspecto que distingue técnicamente las unidades ejecutables de los bloques básicos.

Si un método Java no tiene información de fuente asociada, se considera que todo el método sólo tiene una unidad ejecutable.

Consulta relacionada
Fragmentos de sonda
Información relacionada
Ejemplo de fragmento de sonda executableUnit