Η τιμή της κάθε καταχώρησης στον πίνακα methodLineTables είναι ο αριθμός γραμμής (στο αρχείο πρωτογενούς κώδικα με το όνομα της σειράς χαρακτήρων δεδομένων classSourceFile) για την αντίστοιχη εκτελέσιμη μονάδα. Για παράδειγμα, ο αριθμός καταχώρησης πέντε στον πίνακα δίνει τον αριθμό γραμμής για την εκτελέσιμη μονάδα με αριθμό πέντε.
Παρακάτω δίνεται ένα παράδειγμα μιας σειράς χαρακτήρων methodLineTables:
#51+1201#75+11,41
Δείτε πώς ερμηνεύεται η σειρά χαρακτήρων:
- Τα ψηφία αμέσως μετά από ένα σύμβολο αριθμού ("#") εκφράζουν έναν αριθμό πλήρων γραμμών του πρωτογενούς κώδικα για μία κλάση. Στο παράδειγμα, η πρώτη εκτελέσιμη μονάδα της πρώτης μεθόδου της κλάσης βρίσκεται στη γραμμή 51.
- Κάθε μεμονωμένο ψηφίο μετά από ένα σύμβολο "συν" (+) εκφράζει τον αριθμό των γραμμών που προστίθενται στον αριθμό της προηγούμενης γραμμής για να προκύψει ο αριθμός γραμμής για την επόμενη εκτελέσιμη μονάδα. Στο παράδειγμα, τα ψηφία μετά το σύμβολο "συν" (+1201) χρησιμοποιούνται για τον υπολογισμό των αριθμών γραμμών για τη δεύτερη έως την πέμπτη εκτελέσιμη μονάδα:
- 51 + 1 = ο αριθμός γραμμής της δεύτερης εκτελέσιμης μονάδας: 52
- 52 +2 = ο αριθμός γραμμής της τρίτης εκτελέσιμης μονάδας: 54
- 54 +0 = ο αριθμός γραμμής της τέταρτης εκτελέσιμης μονάδας: 54 (δύο εκτελέσιμες μονάδες σε μία γραμμή πρωτογενούς κώδικα)
- 54 + 1 = ο αριθμός γραμμής της πέμπτης εκτελέσιμης μονάδας: 55
- Εάν η προσαύξηση του αριθμού γραμμής είναι αρνητική ή μεγαλύτερη από εννέα, τότε προσδιορίζεται ο αριθμός πλήρων γραμμών για την εκτελέσιμη μονάδα. Στο παράδειγμα, η έκτη εκτελέσιμη μονάδα βρίσκεται στη γραμμή 75, μεγαλύτερη κατά είκοσι από τον αριθμό της προηγούμενης γραμμής που ήταν το 55. Στην περίπτωση αυτή, προσδιορίζεται ο αριθμός πλήρων γραμμών για την έκτη εκτελέσιμη μονάδα και ο υπολογισμός του σχετικού αριθμού γραμμής ξεκινά από την αρχή (#75+11):
- 75 = ο αριθμός γραμμής της έκτης εκτελέσιμης μονάδας
- 75 + 1 = ο αριθμός γραμμής της έβδομης εκτελέσιμης μονάδας: 76
- 76 + 1 = ο αριθμός γραμμής της όγδοης εκτελέσιμης μονάδας: 77
- Το κόμμα (,) δηλώνει το τέλος μίας μεθόδου και την αρχή της επόμενης.
Τα ψηφία και τα σύμβολα που ακολουθούν μετά το κόμμα ερμηνεύονται όπως και τα προηγούμενα. Στο παράδειγμα, ο αριθμός γραμμής της πρώτης εκτελέσιμης μονάδας στη δεύτερη μέθοδο είναι μόνο κατά 4 μεγαλύτερος από τον τελευταίο αριθμό γραμμής που υπολογίστηκε για την προηγούμενη μέθοδο. Έτσι, ο υπολογισμός του σχετικού αριθμού γραμμής συνεχίζεται μετά το κόμμα (,41):
- 77 + 4 = ο αριθμός γραμμής της πρώτης εκτελέσιμης μονάδας στη δεύτερη μέθοδο: 81
- 81 +1 = ο αριθμός γραμμής της δεύτερης εκτελέσιμης μονάδας στη δεύτερη μέθοδο: 82
Σημείωση: Δεν υπάρχουν πληροφορίες πρωτογενούς κώδικα συσχετισμένες με όλες τις εκτελέσιμες μονάδες. Ορισμένες δημιουργούνται από το μεταγλωττιστή για την υλοποίηση της σημασιολογίας της γλώσσας Java: για παράδειγμα, χειρισμός εξαιρέσεων, απόδοση αρχικών τιμών ή συγχρονισμός. Αυτές οι εκτελέσιμες μονάδες που δημιουργούνται έχουν μηδενικό αριθμό πλήρων γραμμών στη σειρά χαρακτήρων methodLineTables. Ο μηδενικός αριθμός πλήρων γραμμών υποδεικνύει ότι δεν υπάρχουν διαθέσιμες πληροφορίες αριθμών γραμμών. Όταν ολόκληρη η μέθοδος δεν περιέχει πληροφορίες πρωτογενούς κώδικα, εμφανίζεται ότι έχει μία εκτελέσιμη μονάδα η οποία αντιστοιχίζεται σε μηδενικό αριθμό γραμμής.
Παρακάτω δίνονται μερικά ακόμη παραδείγματα σειρών χαρακτήρων methodLineTables και των ερμηνειών τους:
Σειρά χαρακτήρων methodLineTables |
Ερμηνεία |
+5 |
Εάν ο αριθμός γραμμής της πρώτης εκτελέσιμης μονάδας της πρώτης μεθόδου είναι μικρότερος από δέκα, ολόκληρη η σειρά χαρακτήρων ξεκινά με ένα σύμβολο "συν", για την έναρξη μιας αυξητικής σειράς από τη γραμμή μηδέν. Στο παράδειγμα αυτό, η πρώτη εκτελέσιμη μονάδα της πρώτης μεθόδου ξεκινά στη γραμμή 5. |
+0 |
Εάν η πρώτη μέθοδος δεν περιέχει πληροφορίες πρωτογενούς κώδικα, τότε η σειρά χαρακτήρων ξεκινά με +0. Κάθε τμήμα κώδικα διερευνητή executableUnit που εφαρμόζεται σε μια τέτοια μέθοδο εισάγεται μόνο μία φορά, στην αρχή της μεθόδου. |
...#437,#457+123... |
Εάν η πρώτη εκτελέσιμη μονάδα για μια μέθοδο ξεκινά σε αριθμό γραμμής μεγαλύτερο κατά περισσότερο από εννέα από την τελευταία εκτελέσιμη μονάδα της προηγούμενης μεθόδου, τότε το μοτίβο είναι ένα κόμμα, ένα σύμβολο αριθμού και η σειρά χαρακτήρων αριθμού γραμμής για την πρώτη εκτελέσιμη μονάδα στη νέα μέθοδο. Σε αυτό το τμηματικό παράδειγμα, η πρώτη εκτελέσιμη μονάδα της νέας μεθόδου ξεκινά 20 γραμμές μετά την τελευταία εκτελέσιμη μονάδα της προηγούμενης μεθόδου. |
...#437,+2... |
Είναι πιθανό, η τελευταία εκτελέσιμη μονάδα μιας μεθόδου να απαιτεί το σύμβολο "#" και η πρώτη εκτελέσιμη μονάδα της επόμενης μεθόδου να βρίσκεται σε μικρή απόσταση από αυτό. Σε αυτό το τμηματικό παράδειγμα, η τελευταία εκτελέσιμη μονάδα μιας μεθόδου ξεκινά στη γραμμή 437 και η πρώτη εκτελέσιμη μονάδα της επόμενης μεθόδου ξεκινά στη γραμμή 439. |