The present invention teaches a source-level debugger that defines symbol
tables with a grammar. A grammar interface component is used by the
compiler to automate portions of the debugger to construct and write the
symbol table in a grammar thus simplifying the compiler. The grammar
interface component is used by the debugger during execution of the target
to read and decode the symbol table, thus simplifying the debugger. Using
a grammar to specify the symbol table also documents the symbol table
concisely and emphasizes that symbol tables are data structures, not file
formats. Many of the pitfalls of working with low-level file formats can
be avoided by focusing instead on grammar-based high-level data structures
and automating the implementation details.
Management of breakpoints is divided by splitting the nub into a client nub
that is local to the target, a server nub that is local to the debugger.
The management of breakpoints is localized to the client nub, thus saving
communication time between the client nub and the server nub in support of
breakpoint processing.
Die anwesende Erfindung unterrichtet einen Quelle-Niveau Debugger, der Zuordnungstabellen mit einer Grammatik definiert. Ein Grammatikschnittstelle Bestandteil wird durch den Compiler benutzt, um Teile des Debuggers zu automatisieren, um die Zuordnungstabelle in eine Grammatik zu konstruieren und zu schreiben, die folglich den Compiler vereinfacht. Der Grammatikschnittstelle Bestandteil wird durch den Debugger während der Durchführung des Ziels benutzt, um die Zuordnungstabelle zu lesen und zu decodieren und so vereinfacht den Debugger. Mit einer Grammatik, die Zuordnungstabelle zu spezifizieren dokumentiert auch die Zuordnungstabelle kurz und hebt, daß Zuordnungstabellen Datenstrukturen sind, nicht Akte formatiert hervor. Viele der Gefahren des Arbeitens mit niedrigen Akte Formaten können vermieden werden, indem man anstatt auf Grammatik-gegründete hochqualifizierte Datenstrukturen konzentriert und die Implementierung Details automatisiert. Management von Gebührenstafflungspunkten wird geteilt, indem man den Auswuchs in einen Klient Auswuchs, der zum Ziel lokal ist, ein Bedienerauswuchs aufspaltet, der zum Debugger lokal ist. Das Management von Gebührenstafflungspunkten wird zum Klient Auswuchs, so zur Einsparungkommunikation Zeit zwischen dem Klient Auswuchs und dem Bedienerauswuchs zur Unterstützung der Gebührenstafflungspunkt-Verarbeitung beschränkt.