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  ghidra::SymbolEntry
 A storage location for a particular Symbol. More...
 
class  ghidra::SymbolEntry::EntryInitData
 Initialization data for a SymbolEntry to facilitate a rangemap. More...
 
class  ghidra::SymbolEntry::EntrySubsort
 Class for sub-sorting different SymbolEntry objects at the same address. More...
 
class  ghidra::Symbol
 The base class for a symbol in a symbol table or scope. More...
 
class  ghidra::FunctionSymbol
 A Symbol representing an executable function. More...
 
class  ghidra::EquateSymbol
 A Symbol that holds equate information for a constant. More...
 
class  ghidra::UnionFacetSymbol
 A Symbol that forces a particular union field at a particular point in the body of a function. More...
 
class  ghidra::LabSymbol
 A Symbol that labels code internal to a function. More...
 
class  ghidra::ExternRefSymbol
 A function Symbol referring to an external location. More...
 
class  ghidra::SymbolCompareName
 Comparator for sorting Symbol objects by name. More...
 
class  ghidra::MapIterator
 An iterator over SymbolEntry objects in multiple address spaces. More...
 
struct  ghidra::DuplicateFunctionError
 Exception thrown when a function is added more than once to the database. More...
 
class  ghidra::Scope
 A collection of Symbol objects within a single (namespace or functional) scope. More...
 
class  ghidra::ScopeInternal
 An in-memory implementation of the Scope interface. More...
 
class  ghidra::ScopeMapper
 An Address range associated with the symbol Scope that owns it. More...
 
class  ghidra::ScopeMapper::NullSubsort
 Helper class for not doing any sub-sorting of overlapping ScopeMapper ranges. More...
 
class  ghidra::Database
 A manager for symbol scopes for a whole executable. More...
 

Typedefs

typedef rangemap< SymbolEntry > ghidra::EntryMap
 A rangemap of SymbolEntry.
 
typedef set< Symbol *, SymbolCompareName > ghidra::SymbolNameTree
 A set of Symbol objects sorted by name.
 
typedef map< uint8, Scope * > ghidra::ScopeMap
 A map from id to Scope.
 
typedef rangemap< ScopeMapper > ghidra::ScopeResolve
 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.