L'objet de sonde Data

Les objets de sonde Data contiennent les noms et les types des éléments de données référencés par le code source dans un objet Code d'un fragment.

L'objet Data est facultatif. Un fragment de sonde peut contenir plusieurs objets Data, mais deux objets Data d'un fragment ne peuvent pas avoir le même type ou nom.

L'objet Data présente les propriétés suivantes :
Propriété Description
name Obligatoire. Doit spécifier un nom de variable Java correct.
type Obligatoire. Les types disponibles sont répertoriés dans le tableau suivant.
Le tableau suivant répertorie et décrit les types et indique le type de données de chacun d'eux :
Type Type de données Description
className Chaîne

Le nom de classe de la méthode à sonde, notamment le nom du module, au format interne.

Exemple : org/eclipse/hyades/SomeClass

methodName Chaîne

Le nom de méthode de la méthode à sonde, au format interne. Incorrect pour les fragments staticInitializer.

Les constructeurs portent le nom de méthode <init>, les initialiseurs de classe statique ont <clinit> comme nom de méthode.

methodSig Chaîne

L'argument de méthode et la signature du type de renvoi, au format interne. Incorrect pour les fragments staticInitializer.

Exemple : (Ljava/lang/String;)I

thisObject Objet

L'objet this (pour des méthodes d'instance) qui a été transmis à la méthode à sonde. Incorrect pour les fragments staticInitializer.

thisObject sera null pour les méthodes statiques, pour les fragments entry qui s'appliquent aux constructeurs et pour les fragments exit appliqués aux constructeurs lorsque le constructeur émet une exception.

args Object[] Un tableau de références Object représentant les arguments pour la méthode à sonde. Il existe un élément dans ce tableau pour chaque argument pour la méthode (l'argument this exclus). Les arguments des types primitifs sont liés à des objets temporaires du type de référence approprié, Integer pour int par exemple. Si la méthode ne prend aucun argument, il s'agira d'un tableau Object[] de taille zéro. Notez que les constructeurs pour des classes internes non statiques ont un argument masqué par niveau "interne". Le tableau d'argument contiendra donc plus d'éléments que ceux qui apparaissent dans le code source. Incorrect pour les fragments staticInitializer.
returnedObject Objet Une référence à l'objet renvoyé. Ce type est uniquement disponible pour les fragments exit. Si le type de renvoi de la méthode à sonde est un type primitif, la valeur renvoyée est liée à un objet temporaire du type de référence approprié. Si la méthode est void (ne renvoie pas de valeur) ou si elle est quittée par une exception, returnedObject sera null. Correct dans les fragments afterCall uniquement.
exceptionObject Throwable Une référence à l'objet d'exception émis. Ce type est uniquement disponible pour les fragments catch et exit. Si la méthode est quittée normalement, exceptionObject sera null.
isFinally boolean Un indicateur spécifiant si le fragment a été appelé à partir d'une clause finally (vrai) ou d'une clause catch (faux). Correct dans les fragments catch uniquement.
staticField (varie) L'objet référencé par le champ statique. Son type est le même que celui déclaré dans l'objet staticField. Ceci est uniquement correct si la sonde comprend également l'objet staticField. Incorrect pour les sondes de site d'appel.
classSourceFile Chaîne Les informations sur le nom du fichier source disponibles grâce aux attributs de débogage du fichier de classe. S'il n'y a pas d'informations source, classSourceFile ser null. Pour Java, la valeur n'est généralement que le nom du fichier, sans informations sur le chemin. Incorrect pour les sondes de site d'appel.
methodNames Chaîne

Une liste codée des noms et signatures de méthode. L'ordre des méthodes dans cette liste est le même que celui des méthodes dans methodLineTables, et est le même que celui reproduit par l'élément de données methodNumber. La liste n'incluera pas les noms des méthodes insérées dans la classe par Probekit.

La chaîne methodNames comprend un ou plusieurs noms et signatures de méthode, séparés par un signe plus ("+"). Les signatures de méthode sont au format interne Java. Par exemple : une classe avec deux méthodes, un constructeur par défaut, un objet run de méthode qui prend une String et renvoie un int, présente cette chaîne methodNames : <init>()V+run(Ljava/lang/String;)I

Incorrect pour les sondes de site d'appel.

methodLineTables Chaîne Une liste codée des numéros de ligne correspondant à chaque unité exécutable de code de la classe. La liste n'incluera pas les unités exécutable insérées dnas la classe par Probekit. Pour obtenir une explication du codage, consultez Le format de chaîne methodLineTables. Incorrect pour les sondes de site d'appel.
methodNumber Integer Le numéro d'index du tableau methodNames pour la méthode dans laquelle le fragment de sonde a été inséré. Incorrect pour les sondes de site d'appel ou les fragments staticInitializer.
executableUnitNumber Integer Le numéro de l'unité exécutable dans laquelle le fragment de sonde a été inséré. Ce type de données est uniquement correct pour les fragments de sonde executableUnit et catch. Si la méthode ne comprend pas d'informations de ligne source, elle apparaîtra comme n'ayant qu'une seule unité exécutable numérotée zéro.
Exemple
<data
   type="className"   
   name="__class" />

Sujet parent : Références concernant les éléments Probekit

Référence associée
Le fragment de sonde staticInitializer
L'objet de sonde StaticField
Le format de chaîne methodLineTables
Le fragment de sonde executableUnit

Conditions d'utilisation | Commentaires
(C) Copyright IBM Corporation 2004. All Rights Reserved.