A method and system within a data processing system are disclosed for
directly accessing code during a process by taking a trace by way of using
an interruption. According to the present invention, the processor is
programmed to generate a trace interrupt after each branch, or at the end
of each basic block from the current process. This allows generation of
exactly the same number of interruptions as would be produced by an
instrumentation approach but without having to know where the basic blocks
are in advance. By programming the performance monitor feature to count
instructions, the exact size of each basic block is known. At each
interrupt, the address of the beginning of the next basic block is saved
which is the address where the interruption came from. Tracing information
for the previous basic block including its address and its size (the
current value of a counter) is created. If the current process is a
process to be traced, the tracing information is stored in a trace buffer,
the counter is reset to zero returning back to the process from the
interrupt.
Μια μέθοδος και ένα σύστημα μέσα σε ένα σύστημα επεξεργασίας δεδομένων αποκαλύπτονται για άμεσα να άσχουν πρόσβαση στον κώδικα κατά τη διάρκεια μιας διαδικασίας με τη λήψη ενός ίχνους μέσω της χρησιμοποίησης μιας διακοπής. Σύμφωνα με την παρούσα εφεύρεση, ο επεξεργαστής είναι προγραμματισμένος για να παραγάγει ένα ίχνος διακόπτει μετά από κάθε κλάδο, ή στο τέλος κάθε βασικού φραγμού από την τρέχουσα διαδικασία. Αυτό επιτρέπει την παραγωγή ακριβώς του ίδιου αριθμού διακοπών όπως θα παραγόταν από μια προσέγγιση ενοργάνωσης αλλά χωρίς να πρέπει να είναι γνωστός όπου οι βασικοί φραγμοί είναι εκ των προτέρων. Με τον προγραμματισμό του χαρακτηριστικού γνωρίσματος οργάνων ελέγχου απόδοσης για να μετρήσει τις οδηγίες, το ακριβές μέγεθος κάθε βασικού φραγμού είναι γνωστό. Σε κάθε ένας διακόψτε, η διεύθυνση της αρχής του επόμενου βασικού φραγμού σώζεται που είναι η διεύθυνση όπου η διακοπή προήλθε από. Οι πληροφορίες επισήμανσης για τον προηγούμενο βασικό φραγμό συμπεριλαμβανομένης της διεύθυνσής της και του μεγέθους της (η τρέχουσα αξία ενός μετρητή) δημιουργούνται. Εάν η τρέχουσα διαδικασία είναι μια διαδικασία που επισημαίνεται, οι πληροφορίες επισήμανσης αποθηκεύονται σε έναν απομονωτή ιχνών, ο μετρητής επαναρυθμίζεται σε μηδέν επιστρέφοντας πίσω στη διαδικασία από διακόπτει.