Methods and apparatus for providing a substantially full set of state
information to a debugger, without significantly compromising system
performance, in order to debug optimized computer program code are
disclosed. According to one aspect of the present invention, a method for
obtaining information associated with program code includes adding a
segment of code, which includes a representation that is effectively not
used after it is computed, to the program code. Debugging code is added in
proximity to the segment of code, and machine code is generated from the
program code. The machine code includes a break point that is associated
with the debugging code, and includes an instruction at the breakpoint.
Finally, the method includes replacing the instruction at the break point
with a branch instruction that is arranged to cause the debugging code to
execute.
Οι μέθοδοι και οι συσκευές για ένα ουσιαστικά πλήρες σύνολο κρατικών πληροφοριών σε έναν διορθωτή, χωρίς σημαντικά να συμβιβάσουν την απόδοση συστημάτων, προκειμένου να διορθωθεί ο βελτιστοποιημένος κώδικας προγράμματος υπολογιστών αποκαλύπτονται. Σύμφωνα με μια πτυχή της παρούσας εφεύρεσης, μια μέθοδος για τις πληροφορίες που συνδέονται με τον κώδικα προγράμματος περιλαμβάνει την προσθήκη ενός τμήματος του κώδικα, που περιλαμβάνει μια αντιπροσώπευση που αποτελεσματικά δεν χρησιμοποιείται αφότου υπολογίζεται, στον κώδικα προγράμματος. Ο κώδικας διόρθωσης προστίθεται στην εγγύτητα στο τμήμα του κώδικα, και ο κώδικας μηχανών παράγεται από τον κώδικα προγράμματος. Ο κώδικας μηχανών περιλαμβάνει ένα σημείο σπασιμάτων που συνδέεται με τον κώδικα διόρθωσης, και περιλαμβάνει μια οδηγία στο σημείο παύσης. Τέλος, η μέθοδος περιλαμβάνει την αντικατάσταση της οδηγίας στο σημείο σπασιμάτων με μια οδηγία κλάδων που κανονίζεται για να αναγκάσει τον κώδικα διόρθωσης για να εκτελέσει.