This is the mail archive of the frysk@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]