decompiler  1.0.0
Classes | Typedefs
database.hh File Reference

Symbol and Scope objects for the decompiler. More...

#include "variable.hh"
#include "partmap.hh"
#include "rangemap.hh"

Classes

class  SymbolEntry
 A storage location for a particular Symbol. More...
 
class  SymbolEntry::EntryInitData
 Initialization data for a SymbolEntry to facilitate a rangemap. More...
 
class  SymbolEntry::EntrySubsort
 Class for sub-sorting different SymbolEntry objects at the same address. More...
 
class  Symbol
 The base class for a symbol in a symbol table or scope. More...
 
class  FunctionSymbol
 A Symbol representing an executable function. More...
 
class  EquateSymbol
 A Symbol that holds equate information for a constant. More...
 
class  LabSymbol
 A Symbol that labels code internal to a function. More...
 
class  ExternRefSymbol
 A function Symbol referring to an external location. More...
 
class  SymbolCompareName
 Comparator for sorting Symbol objects by name. More...
 
class  MapIterator
 An iterator over SymbolEntry objects in multiple address spaces. More...
 
class  Scope
 A collection of Symbol objects within a single (namespace or functional) scope. More...
 
class  ScopeInternal
 An in-memory implementation of the Scope interface. More...
 
class  ScopeMapper
 An Address range associated with the symbol Scope that owns it. More...
 
class  ScopeMapper::NullSubsort
 Helper class for not doing any sub-sorting of overlapping ScopeMapper ranges. More...
 
class  Database
 A manager for symbol scopes for a whole executable. More...
 

Typedefs

typedef rangemap< SymbolEntryEntryMap
 A rangemap of SymbolEntry.
 
typedef set< Symbol *, SymbolCompareNameSymbolNameTree
 A set of Symbol objects sorted by name.
 
typedef map< uint8, Scope * > ScopeMap
 A map from id to Scope.
 
typedef rangemap< ScopeMapperScopeResolve
 A map from address to the owning Scope.
 

Detailed Description

Symbol and Scope objects for the decompiler.

These implement the main symbol table, with support for symbols, local and global scopes, namespaces etc. Search can be by name or the address of the Symbol storage location.