Los objetos de sonda Data contienen los nombres y los tipos de elementos de datos a los que hace referencia el código fuente en el objeto Code de un fragmento.
El objeto Data es opcional. Un fragmento de sonda puede contener más de un objeto Data, pero dos objetos Data de un fragmento no pueden tener tener el mismo tipo o nombre.
Propiedad | Descripción |
---|---|
name | Obligatoria. Debe especificar un nombre de variable Java válido. |
type | Obligatoria. Los tipos disponibles se indican en la tabla siguiente. |
Tipo | Tipo de datos | Descripción |
---|---|---|
className | String | El nombre de clase del método sondeado, incluido el nombre de paquete, en formato interno. Ejemplo: org/eclipse/hyades/SomeClass |
methodName | String | El nombre de método del método sondeado, en formato interno. No es válido para fragmentos staticInitializer. Los constructores tienen el nombre de método <init>, los inicializadores de clase estáticos tienen <clinit> como nombre de método. |
methodSig | String | El argumento de método y la signatura de tipo de retorno, en formato interno. No es válido para fragmentos staticInitializer. Ejemplo: (Ljava/lang/String;)I |
thisObject | Object | El objeto this (para métodos de instancia) que se ha pasado al método sondeado. No es válido para fragmentos staticInitializer. thisObject será null para métodos estáticos, para fragmentos entry que se aplican a constructores y para fragmentos exit aplicados a constructores cuando el constructor lanza una excepción. |
args | Object[] | Una matriz de referencias a Object que representan los argumentos del método sondeado. Hay un elemento de esta matriz para cada argumento del método (sin contar el argumento this). Los argumentos que son tipos primitivos están vinculados a objetos temporales del tipo de referencia apropiado, como por ejemplo: Integer para int. Si el método no acepta argumentos, será una matriz Object[] de tamaño cero. Tenga en cuenta que los constructores de clases internas no estáticas tienen un argumento oculto por nivel "interno", de modo que la matriz de argumentos contendrá más elementos de los que aparecen en el código fuente. No es válido para fragmentos staticInitializer. |
returnedObject | Object | Una referencia al objeto que se devuelve. Este tipo sólo está disponible para fragmentos exit. Si el tipo de retorno del método sondeado es un tipo primitivo, el valor devuelto está vinculado a un objeto temporal del tipo de referencia apropiado. Si el método es void (no devuelve un valor) o si sale por una excepción, returnedObject será null. Sólo es válido en fragmentos afterCall. |
exceptionObject | Throwable | Una referencia al objeto de excepción que se lanza. Este tipo sólo está disponible para fragmentos catch y exit. Si el método sale normalmente, exceptionObject será null. |
isFinally | boolean | Un distintivo que indica si el fragmento se ha llamado desde una cláusula finally (true) o desde una cláusula catch (false). Sólo es válido en fragmentos catch. |
staticField | (varía) | El objeto al que hace referencia el campo estático. Su tipo es el mismo tipo que se declaró en el objeto staticField. Sólo es válido si la sonda también tiene el objeto staticField. No es válido para sondas de sitio de llamada. |
classSourceFile | String | La información de nombre de archivo de origen disponible en los atributos de depuración del archivo de clase. Si no se dispone de información de origen, classSourceFile será null. Para Java, el valor suele ser simplemente el nombre de archivo, sin información de vía de acceso. No es válido para sondas de sitio de llamada. |
methodNames | String | Una lista codificada de nombres y signaturas de método. El orden de los métodos de esta lista es el mismo que el orden de los métodos de methodLineTables y es el mismo que la ordenación reflejada por el elemento de datos methodNumber. La lista no incluirá los nombres de los métodos que ProbeKit ha insertado en la clase. La cadena de caracteres methodNames está formada por uno o más nombres y signaturas de método, separados por un signo más ("+"). Las signaturas de método están en formato interno Java. Por ejemplo, una clase con dos métodos, un constructor por omisión y un método run que acepta un tipo String y devuelve un int, tiene esta cadena de caracteres methodNames: <init>()V+run(Ljava/lang/String;)I No es válido para sondas de sitio de llamada. |
methodLineTables | String | Una lista codificada de números de línea que se corresponden con cada unidad ejecutable de código de la clase. La lista no incluirá las unidades ejecutables que ProbeKit ha insertado en la clase. Para ver una explicación de la codificación, consulte el apartado El formato de la cadena de caracteres methodLineTables. No es válido para sondas de sitio de llamada. |
methodNumber | Integer | El número de índice de la tabla methodNames para el método en el que se ha insertado el fragmento de sonda. No es válido para sondas de sitio de llamada ni para fragmentos staticInitializer. |
executableUnitNumber | Integer | El número de la unidad ejecutable en la que se ha insertado el fragmento de sonda. Este tipo de datos sólo es válido para los fragmentos de sonda executableUnit y catch. Si el método no tiene información de línea de origen, aparecerá como si tuviese una única unidad ejecutable, con el número cero. |
<data type="className" name="__class" />
Contenido por
El objeto de sonda Fragment