Le format de chaîne methodLineTables

La chaîne de données methodLineTables code un tableau à une entrée pour chaque unité exécutable d'une classe.

La valeur de chaque entrée du tableau methodLineTables correspond à une numéro de ligne dans le fichier source référencé par la chaîne de données classSourceFile, le numéro de ligne source d'une unité exécutable.

Voici un exemple de chaîne methodLineTables :
#51+1201#75+11,41
Voici à présent une interprétation de la chaîne :
  • Les chiffres tout de suite après le signe dièse ("#") représentent un numéro de ligne complet du code source d'une classe. Dans l'exemple, la première unité exécutable de la première méthode de la classe se trouve à la ligne 51.
  • Chaque chiffre suivi d'un signe plus ("+") représente le nombre de lignes à ajouter au numéro de ligne précédent pour produire le numéro de ligne de l'unité exécutable suivante. Dans l'exemple, les chiffres suivis du signe plus (+1201) sont utilisés pour calculer les numéros de ligne de la deuxième à la cinquième unités exécutables :
    1. 51 + 1 = le numéro de ligne de la deuxième unité exécutable : 52
    2. 52 + 2 = le numéro de ligne de la troisième unité exécutable : 54
    3. 54 + 0 = le numéro de ligne de la quatrième unité exécutable : 54 (deux unités exécutables sur une ligne source)
    4. 54 + 1 = le numéro de ligne de la cinquième unité exécutable : 55
  • Lorsqu'un incrément du numéro de ligne est négatif ou supérieur à neuf, le numéro de ligne complet de l'unité exécutable est spécifié. Dans l'exemple, la sixième unité exécutable se trouve à la ligne 75, soit vingt lignes après le numéro de ligne précédent qui était 55. Dans ce cas, le numéro de ligne complet est spécifié pour la sixième unité exécutable et le calcul du numéro de ligne relatif recommence (#75+11):
    1. 75 = le numéro de ligne de la sixième unité exécutable
    2. 75 + 1 = le numéro de ligne de la septième unité exécutable : 76
    3. 76 + 1 = le numéro de ligne de la huitième unité executable : 77
  • Une virgule (",") indique la fin d'une méthode et le début de la suivante. Les chiffres et les symboles après la virgule sont interprétés comme précédemment. Dans l'exemple, le numéro de ligne de la première unité exécutable de la seconde méthode est supérieure (+ 4 seulement) au dernier numéro de ligne calculé pour la méthode précédente, le calcul du numéro de ligne relatif se poursuit donc après la virgule (,41):
    1. 77 + 4 = le numéro de ligne de la première unité exécutable de la seconde méthode : 81
    2. 88 + 1 = le numéro de ligne de la deuxième unité exécutable de la seconde méthode : 89
Remarque : Toutes les unités exécutables ne disposeront pas d'informations source associées. Certaines sont créées par le compilateur pour mettre en oeuvre une sémantique du langage Java, la gestion des exceptions, l'initialisation ou la synchronisation par exemple. Ces unités exécutables générées disposeront d'un numéro de ligne complet de zéro dans la chaîne methodLineTables. Un numéro de ligne complet de zéro indique qu'aucune information sur le numéro de ligne n'est disponible. Lorsqu'une méthode entière ne comprend pas d'informations source, elle apparaît n'avoir qu'une seule unité exécutable correspondant au numéro de ligne zéro.
Voici quelques exemples de chaînes methodLineTables et leur signification :
Chaîne methodLineTables Signification
+5 Si le numéro de ligne de la première unité exécutable de la première méthode est inférieur à dix, la chaîne entière commence par un signe plus pour lancer une série d'incrément à partir de la ligne zéro. Dans cet exemple, la première unité exécutable de la première méthode commence à la ligne 5.
+0 Si la première méthode ne comprend pas d'informations source, la chaîne commencera par +0. Tout fragment de sonde executableUnit qui s'applique à une telle méthode ne sera inséré qu'une seule fois, au début de la méthode.
...#437,#457+123... Si la première unité exécutable d'une méthode commence plus de neuf lignes après la dernière unité exécutable de la méthode précédente, le masque est une virgule, un signe dièse, puis la chaîne de numéro de ligne de la première unité exécutable de la nouvelle méthode. Dans cet exemple partiel, la première unité exécutable de la nouvelle méthode commence 20 lignes après la dernière unité exécutable de la méthode précédente.
...#437,+2... Il est possible que la dernière unité exécutable d'une méthode requiert la notation "#" et que la première unité exécutable de la méthode suivante soit un peu distante. Dans cet exemple partiel, la dernière unité exécutable d'une méthode commence à la ligne 437 et la première unité exécutable de la méthode suivante commence à la ligne 439.

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

Référence associée
L'objet de sonde Data

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