This is the mail archive of the
frysk@sources.redhat.com
mailing list for the frysk project.
frysk.debuginfo abi?
- From: Stan Cox <scox at redhat dot com>
- To: Frysk List <frysk at sourceware dot org>
- Date: Wed, 30 May 2007 12:08:21 -0400
- Subject: frysk.debuginfo abi?
This is a brief overview of what is currently in frysk.debuginfo:
The Antlr parser generator is used to generate java classes
corresponding to the grammar defined in frysk-core/frysk/expr/cpp.g.
The generated files are <blddir>/frysk-core/frysk/expr/:
CppLexer.java lexical analyzer
CppParser.java parser
CppTreeParser.java "backend" this is the antlr->frysk interface layer
CppTreeParserTokenTypes.java
CppSymTab.java is an interface that the parser uses to access the
frysk model of the symbol table.
DebugInfoEvaluator.java implements this interface. More about that later.
DebugInfo.java is the interface to expressions from FryskGui or fhpd.
It handles tab completion, what request (type/variable info), and
where request (frame info). It passes the print and assign requests
through to get and put in DebugInfoEvaluator.java. Currently defined
are:
complete - used for tab completion
getSymbolDie - used by list and breakpoint handling to find a function
what - used by 'what' to fetch type information
print - used by 'print' to evaluate an expression
setCurrentFrame/getCurrentFrame/getInnerMostFrame - used by up/down/where
setSubprogram - initializes the current abstract model structures
(Sami is continuing this early abstract model effort.)
DebugInfoEvaluator.java handles anything required of the dwarf symbol
table. More accurately, the parser does this by calling back into
DebugInfoEvaluator. DebugInfoEvaluator handles accessing scalar
variables, arrays, structs, unions, addresses and enumerations.
Currently it calls libdw via the java interface layer in
frysk-imports/lib/dw/DwarfDie.java. There are java versions
of the dwarf encodings in
<blddir>/frysk-imports/lib/dw/Dw*Encodings.java.