Les objets de sonde Data contiennent les noms et les types d'éléments de données référencés par le code source dans l'objet Code d'un fragment.
L'objet Data est facultatif. Un fragment de sonde peut contenir plusieurs objets Data, mais chacun doit posséder un type et un nom unique dans un même fragment.
Propriété | Description |
---|---|
name | Obligatoire. Doit correspondre à un nom de variable Java valide. |
type | Obligatoire. Les types disponibles sont répertoriés dans le tableau ci-après. |
Type | Type Data | Description |
---|---|---|
className | String | Le nom de la classe de la méthode sondée, y compris le nom du package au format interne. Exemple : org/eclipse/hyades/SomeClass |
methodName | String | Le nom de la méthode sondée, au format interne. Non accepté pour des fragments staticInitializer. 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 accepté pour des 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 accepté pour des 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, qui sont des 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, il s'agira d'un ensemble Object[] de taille 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 accepté pour des fragments staticInitializer. |
returnedObject | Object | Une référence à l'objet retourné. Ce type est uniquement disponible pour les fragments exit. 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. Uniquement valable dans les fragments afterCall. |
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 la zone statique fait référence. Son type est identique à celui déclaré dans l'objet staticField. Il est uniquement valable si la sonde possède également un objet staticField. 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. |
<data type="className" name="__class" />
Figurant dans
Objet de sonde Fragment
Rubrique parent :
Référence Probekit