A first copy of Open Firmware is loaded into system memory to supply a
debug function and a second copy of the same firmware is then loaded to
provide functional code which is to be debugged. The first copy of Open
Firmware in system memory is designated as the resident debugging
function. Kernel code, within the first copy, sets up an executing
environment for the debugger, such as system exception handlers and debug
console enablement. Normal Open Firmware configuration variables are
retrieved from Non-Volatile Random Access Memory ("NVRAM") by the first
copy and transmitted to the loader. The second copy of Open Firmware is
loaded into system memory to a location specified by the configuration
variables. The second copy firmware image is designated as a normal Open
Firmware operation in the system. The second copy initially takes over all
system exception handlers except instruction breakpoint exception, program
interrupt exception and trace exception. The instruction breakpoint
exception is utilized to invoke the first copy, or resident debugger, from
the normal Open Firmware (second copy) image during code debugging. The
two copy debugging configuration is utilized in conjunction with an online
machine language assembler and disassembler.
Ένα πρώτο αντίγραφο ανοικτό firmware φορτώνεται στη μνήμη συστημάτων για να παρέχει διορθώνει τη λειτουργία και ένα δεύτερο αντίγραφο ίδιο firmware φορτώνεται έπειτα για να παρέχει το λειτουργικό κώδικα που πρόκειται να διορθωθεί. Το πρώτο αντίγραφο ανοικτό firmware στη μνήμη συστημάτων υποδεικνύεται ως εδρεύουσα λειτουργία διόρθωσης. Ο κώδικας πυρήνων, μέσα στο πρώτο αντίγραφο, οργανώνει ένα εκτελώντας περιβάλλον για το διορθωτή, όπως οι χειριστές εξαίρεσης συστημάτων και διορθώνει το enablement κονσολών. Οι κανονικές ανοικτές firmware μεταβλητές διαμόρφωσης ανακτώνται από την αμετάβλητη τυχαία μνήμη πρόσβασης ("NVRAM") από το πρώτο αντίγραφο και διαβιβάζονται στο φορτωτή. Το δεύτερο αντίγραφο ανοικτό firmware φορτώνεται στη μνήμη συστημάτων σε μια θέση που διευκρινίζεται από τις μεταβλητές διαμόρφωσης. Η δεύτερη firmware αντιγράφων εικόνα υποδεικνύεται ως κανονική ανοικτή firmware λειτουργία στο σύστημα. Το δεύτερο αντίγραφο αναλαμβάνει αρχικά όλους τους χειριστές εξαίρεσης συστημάτων εκτός από την εξαίρεση σημείου παύσης οδηγίας, το πρόγραμμα διακόπτει την εξαίρεση και την εξαίρεση ιχνών. Η εξαίρεση σημείου παύσης οδηγίας χρησιμοποιείται για να επικαλεσθεί το πρώτο αντίγραφο, ή τον εδρεύοντα διορθωτή, από την κανονική ανοικτή firmware (δεύτερο αντίγραφο) εικόνα κατά τη διάρκεια της διόρθωσης κώδικα. Τα δύο αντιγράφουν τη διαμόρφωση διόρθωσης χρησιμοποιούνται από κοινού με μια σε απευθείας σύνδεση γλωσσικά assembler και disassembler μηχανών.