Τα στοιχεία δεδομένων ενός τμήματος κώδικα είναι τα ονόματα και τα είδη των στοιχείων δεδομένων στα οποία ο πρωτογενής κώδικας του τμήματος μπορεί να παραπέμπει.
Η προδιαγραφή των στοιχείων δεδομένων είναι προαιρετική. Ένα τμήμα κώδικα μπορεί να περιέχει περισσότερα του ενός στοιχεία δεδομένων, αλλά κάθε είδος στοιχείου μπορεί να εμφανίζεται μόνο μία φορά.
Ιδιότητα | Περιγραφή |
---|---|
Είδος δεδομένων | Υποχρεωτική. Τα διαθέσιμα είδη αναγράφονται στον ακόλουθο πίνακα. |
Όνομα | Υποχρεωτική. Πρέπει να προσδιορίζεται ένα έγκυρο όνομα μεταβλητής Java. Ο πρωτογενής κώδικας τμήματος διερευνητή θα χρησιμοποιεί το ίδιο όνομα για να παραπέμπει στα υποδεικνυόμενα δεδομένα. |
Είδος δεδομένων | είδος | Περιγραφή |
---|---|---|
className | Σειρά χαρακτήρων | Για διερευνητές μεθόδων, το όνομα κλάσης της ελεγχόμενης μεθόδου, συμπεριλαμβανομένου του ονόματος πακέτου, σε εσωτερική μορφή. Για διερευνητές σημείων κλήσης, το όνομα κλάσης της καλούμενης μεθόδου. Παράδειγμα: org/eclipse/tptp/SomeClass |
methodName | Σειρά χαρακτήρων | Για διερευνητές μεθόδων, το όνομα της ελεγχόμενης μεθόδου, σε εσωτερική μορφή. Για διερευνητές σημείων κλήσης, το όνομα της καλούμενης μεθόδου. Οι λειτουργίες κατασκευής έχουν όνομα μεθόδου <init> και οι στατικές λειτουργίες απόδοσης αρχικών τιμών σε κλάσεις έχουν όνομα μεθόδου <clinit>. |
methodSig | Σειρά χαρακτήρων | Το όρισμα μεθόδου και η υπογραφή του είδους επιστροφής, σε εσωτερική μορφή. Δεν είναι έγκυρο για τμήματα κώδικα staticInitializer. Παράδειγμα: (Ljava/lang/String;)I |
thisObject | Object | Το αντικείμενο this (για μεθόδους χρήσης) που μεταβιβάστηκε στην ελεγχόμενη μέθοδο. Δεν είναι έγκυρο για τμήματα κώδικα staticInitializer. Το thisObject έχει την τιμή null για στατικές μεθόδους, για τμήματα κώδικα entry που εφαρμόζονται σε λειτουργίες κατασκευής και για τμήματα κώδικα exit που εφαρμόζονται σε λειτουργίες κατασκευής, όταν αυτές εμφανίζουν εξαίρεση. |
args | Object[] | Ένας πίνακας παραπομπών σε Object που αναπαριστά το σύνολο των ορισμάτων στην ελεγχόμενη μέθοδο. Στον πίνακα αυτό υπάρχει ένα στοιχείο για κάθε όρισμα στη μέθοδο (χωρίς να προσμετράται το όρισμα this). Τα ορίσματα που είναι στοιχειώδη είδη περικλείονται σε προσωρινά αντικείμενα του κατάλληλου είδους παραπομπής, για παράδειγμα: Integer αντί για int. Εάν η μέθοδος δεν χρησιμοποιεί ορίσματα, το μέγεθος του πίνακα Object[] θα είναι μηδενικό. Θα πρέπει να σημειωθεί ότι οι λειτουργίες κατασκευής για μη στατικές εσωτερικές κλάσεις έχουν ένα κρυφό όρισμα σε κάθε επίπεδο "inner", συνεπώς ο πίνακας ορισμάτων θα περιέχει περισσότερα στοιχεία από όσα εμφανίζονται στον πρωτογενή κώδικα. Δεν είναι έγκυρο για τμήματα κώδικα staticInitializer. |
returnedObject | Object | Μια παραπομπή στο αντικείμενο που επιστρέφεται. Το είδος αυτό είναι διαθέσιμο μόνο σε τμήματα κώδικα exit και afterCall. Εάν η ελεγχόμενη μέθοδος επιστρέφει τιμές στοιχειώδους είδους, η τιμή επιστροφής συνδέεται με ένα προσωρινό αντικείμενο του κατάλληλου είδους παραπομπής. Εάν η μέθοδος είναι void (δεν επιστρέφει κάποια τιμή) ή εάν τερματίζεται με εξαίρεση, τότε το returnedObject έχει την τιμή null. |
exceptionObject | Throwable | Μια παραπομπή στο αντικείμενο εξαίρεσης που προκύπτει. Το είδος αυτό είναι διαθέσιμο μόνο σε τμήματα κώδικα catch και exit. Εάν η μέθοδος τερματίζεται κανονικά, τότε το exceptionObject θα έχει την τιμή null. |
isFinally | λογική τιμή | Ένας ενδείκτης που δηλώνει αν το τμήμα κώδικα κλήθηκε από συνθήκη finally (true) ή από συνθήκη catch (false). Έγκυρο μόνο σε τμήματα κώδικα catch. |
staticField | (ποικίλλει) | Το αντικείμενο στο οποίο πραγματοποιείται παραπομπή από το στατικό πεδίο. Έχει το ίδιο είδος με αυτό που δηλώθηκε στο αντικείμενο staticField. Έγκυρο μόνο όταν ο διερευνητής δηλώνει ένα αντικείμενο staticField. (Ανατρέξτε στην ενότητα Ένα παράδειγμα διερευνητή staticField και staticInitializer.) Δεν είναι έγκυρο για διερευνητές σημείων κλήσης. |
classSourceFile | Σειρά χαρακτήρων | Οι πληροφορίες ονόματος του αρχείου πρωτογενούς κώδικα που είναι διαθέσιμες από τα γνωρίσματα εντοπισμού και διόρθωσης σφαλμάτων του αρχείου class. Εάν δεν υπάρχουν πληροφορίες πρωτογενούς κώδικα, τότε το classSourceFile έχει την τιμή null. Για τη Java, η τιμή αυτή είναι συνήθως απλά το όνομα αρχείου, χωρίς τις πληροφορίες διαδρομής. Δεν είναι έγκυρο για διερευνητές σημείων κλήσης. |
methodNames | Σειρά χαρακτήρων | Μια κωδικοποιημένη λίστα ονομάτων και υπογραφών μεθόδων. Η σειρά των μεθόδων στη λίστα αυτή είναι ίδια με τη σειρά των μεθόδων του είδους methodLineTables και είναι ίδια με τη σειρά που παρουσιάζεται στο στοιχείο δεδομένων methodNumber. Η λίστα αυτή δεν συμπεριλαμβάνει τα ονόματα των μεθόδων που έχουν εισαχθεί στην κλάση από το Probekit. Η σειρά χαρακτήρων methodNames αποτελείται από ένα ή περισσότερα ονόματα μεθόδων και υπογραφές, που διαχωρίζονται μεταξύ τους με το σύμβολο "συν" (+). Οι υπογραφές μεθόδων είναι σε εσωτερική μορφή Java. Για παράδειγμα, μία κλάση με δύο μεθόδους, μια προεπιλεγμένη λειτουργία κατασκευής, μια μέθοδο run που λαμβάνει ένα String και επιστρέφει int, έχει τη σειρά χαρακτήρων methodNames: <init>()V+run(Ljava/lang/String;)I Δεν είναι έγκυρο για διερευνητές σημείων κλήσης. |
methodLineTables | Σειρά χαρακτήρων | Μια κωδικοποιημένη λίστα αριθμών γραμμής που αντιστοιχούν σε κάθε εκτελέσιμη μονάδα κώδικα της κλάσης. Η λίστα δεν συμπεριλαμβάνει εκτελέσιμες μονάδες που έχουν εισαχθεί στην κλάση από το Probekit. Μια εξήγηση της κωδικοποίησης δίνεται στην ενότητα Η μορφή της σειράς χαρακτήρων methodLineTables. Δεν είναι έγκυρο για διερευνητές σημείων κλήσης. |
methodNumber | Ακέραιος αριθμός | Ο αριθμός δείκτη στον πίνακα methodNames για τη μέθοδο στην οποία έχει εισαχθεί το τμήμα κώδικα διερευνητή. Δεν είναι έγκυρο για διερευνητές σημείων κλήσης ή τμήματα κώδικα staticInitializer. |
executableUnitNumber | Ακέραιος αριθμός | Ο αριθμός της εκτελέσιμης μονάδας στην οποία έχει εισαχθεί το τμήμα κώδικα διερευνητή. Αυτό το είδος δεδομένων είναι έγκυρο μόνο για τμήματα κώδικα διερευνητή executableUnit και catch. Εάν η μέθοδος δεν διαθέτει πληροφορίες γραμμής πρωτογενούς κώδικα, θα φαίνεται ότι έχει μία εκτελέσιμη μονάδα, με τον αριθμό μηδέν. |
Για να καταχωρήσετε στοιχεία δεδομένων τμήματος κώδικα διερευνητή, επιλέξτε Τμήμα κώδικα στο τμήμα παραθύρου διακλάδωσης, έπειτα χρησιμοποιήστε τις επιλογές Προσθήκη και Τροποποίηση για να καταχωρήσετε και να ορίσετε τα στοιχεία δεδομένων στο τμήμα παραθύρου τροποποίησης.