Eléments de données de fragment de sonde

Les éléments de données d'un fragment sont les noms et les types d'éléments de données que le code source du fragment peut référencer.

La spécification des éléments de données est optionnelle. Un fragment peut contenir plus d'un élément de données, mais chaque type d'élément ne peut apparaître qu'une fois.

Un élément de données comprend les propriétés suivantes :
Propriété Description
Type de données Obligatoire. Les types disponibles sont répertoriés dans le tableau ci-après.
Nom Obligatoire. Doit correspondre à un nom de variable Java valide. Le code source du fragment utilisera ce nom pour faire référence à la donnée indiquée.
Le tableau suivant répertorie et décrit les types de données disponibles grâce à l'éditeur Probekit :
Type de données type, Description
className String

Pour les sondes de méthode, le nom de classe de la méthode sondée, y compris le nom du package, au format interne ; pour les sondes de site d'appel, le nom de classe de la méthode appelée.

Exemple : org/eclipse/tptp/SomeClass

methodName String

Pour les sondes de méthode, le nom de classe de la méthode sondée, y compris le nom du package, au format interne ; pour les sondes de site d'appel, le nom de classe de la méthode appelée.

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

methodSig String

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

Exemple : (Ljava/lang/String;)I

thisObject Object

L'objet this (pour des méthodes d'instances) transmis à la méthode sondée. Non autorisé pour les fragments staticInitializer.

thisObject correspondra à null pour les méthodes statiques, pour les fragments entry appliqués à des constructeurs et pour les fragments exit appliqués à des constructeurs lorsque ceux-ci lancent une exception.

args Object[]

Un ensemble de références Object représentant les arguments pour la méthode sondée. Il existe un élément pour chaque argument de la méthode (hormis l'argument this). Les arguments de types primitifs sont regroupés dans des objets temporaires du type de référence approprié. Par exemple : Integer pour int. Si la méthode n'accepte aucun argument, la taille de l'ensemble Object[] est nulle.

Les constructeurs des classes internes non statiques possèdent un argument caché par niveau interne afin que l'ensemble d'arguments comportent plus d'éléments que ceux apparaissant dans le code source. Non autorisé pour les fragments staticInitializer.

returnedObject Object Une référence à l'objet retourné. Ce type est uniquement disponible pour les fragments exit et afterCall. Si le type de retour de la méthode sondée est primitif, la valeur renvoyée est placée dans un objet temporaire du type de référence approprié. Si la méthode est void (elle ne retourne pas de valeur) ou sort par exception, returnedObject sera null.
exceptionObject Throwable Une référence à l'objet d'exception lancé. Ce type est uniquement disponible pour les fragments catch et exit. Si la méthode termine normalement, exceptionObject est null.
isFinally boolean Une balise indiquant si le fragment a été appelé à partir d'une clause finally (true) ou catch (false). Uniquement valable dans les fragments catch.
staticField (variable) L'objet auquel le champ statique fait référence. Son type est identique à celui déclaré dans l'objet staticField. Ceci n'est autorisé que si la sonde déclare un staticField. (Voir Exemple de sonde staticField et staticInitializer.) Non accepté pour les sondes de site d'appel.
classSourceFile String Les informations source sur le nom du fichier, disponibles via les attributs de débogage du fichier classe. S'il n'existe pas d'informations source, classSourceFile est null. Pour Java, la valeur correspond en général au nom du fichier, sans informations sur le chemin d'accès. Non accepté pour les sondes de site d'appel.
methodNames String

Une liste encodée de noms et de signatures de méthodes. L'ordre des méthodes dans cette liste est identique à celui des méthodes dans methodLineTables et au classement reflété par l'élément de données methodNumber. La liste n'inclut pas les noms des méthodes insérées dans la classe par Probekit.

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

Non accepté pour les sondes de site d'appel.

methodLineTables String Une liste encodée de numéros de lignes correspondant à chaque unité exécutable de code dans la classe. La liste ne comportera aucune unité exécutable insérée dans la classe par Probekit. Pour en savoir plus sur l'encodage, voir Format de chaîne methodLineTables. Non accepté pour les sondes de site d'appel.
methodNumber Integer Le numéro d'index dans le tableau methodNames pour la méthode dans laquelle le fragment de sonde a été inséré. Non accepté 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 valable pour les fragments de sonde executableUnit et catch. Si la méthode ne possède pas les informations source sur les lignes, elle inclura une seule unité exécutable numérotée zéro.
Exemple :

Pour entrer de éléments de données de fragment de sonde, sélectionnez Fragment dans le panneau d'arborescence, puis utilisez Ajouter et Editer pour entrer et définir les éléments de données dans le panneau d'édition.

L'éditeur Probekit vous montre l'aspect du code source Java d'un fragment

Référence connexe
Code source Java du fragment de sonde
Types de fragments de sonde