|
| ScopeLocal (AddrSpace *spc, Funcdata *fd, Architecture *g) |
|
AddrSpace * | getSpaceId (void) const |
|
bool | isUnaffectedStorage (Varnode *vn) const |
|
void | markNotMapped (AddrSpace *spc, uintb first, int4 sz, bool param) |
|
virtual void | saveXml (ostream &s) const |
| Write out this as a <scope> XML tag.
|
|
virtual void | restoreXml (const Element *el) |
| Restore this Scope from a <scope> XML tag.
|
|
virtual string | buildVariableName (const Address &addr, const Address &pc, Datatype *ct, int4 &index, uint4 flags) const |
| Given an address and data-type, build a suitable generic symbol name. More...
|
|
void | resetLocalWindow (void) |
|
void | restructureVarnode (bool aliasyes) |
|
void | restructureHigh (void) |
|
bool | makeNameRecommendation (string &res, const Address &addr, const Address &usepoint) const |
|
void | makeNameRecommendationsForSymbols (vector< string > &resname, vector< Symbol * > &ressym) const |
|
void | addRecommendName (const Address &addr, const Address &usepoint, const string &nm, int4 sz) |
|
| ScopeInternal (const string &nm, Architecture *g) |
| Construct the Scope. More...
|
|
virtual void | clear (void) |
| Clear all symbols from this scope.
|
|
virtual void | categorySanity (void) |
| Make sure Symbol categories are sane. More...
|
|
virtual void | clearCategory (int4 cat) |
| Clear all symbols of the given category from this scope.
|
|
virtual void | clearUnlocked (void) |
| Clear all unlocked symbols from this scope.
|
|
virtual void | clearUnlockedCategory (int4 cat) |
| Clear unlocked symbols of the given category from this scope.
|
|
virtual MapIterator | begin (void) const |
| Beginning iterator to mapped SymbolEntrys.
|
|
virtual MapIterator | end (void) const |
| Ending iterator to mapped SymbolEntrys.
|
|
virtual list< SymbolEntry >::const_iterator | beginDynamic (void) const |
| Beginning iterator to dynamic SymbolEntrys.
|
|
virtual list< SymbolEntry >::const_iterator | endDynamic (void) const |
| Ending iterator to dynamic SymbolEntrys.
|
|
virtual list< SymbolEntry >::iterator | beginDynamic (void) |
| Beginning iterator to dynamic SymbolEntrys.
|
|
virtual list< SymbolEntry >::iterator | endDynamic (void) |
| Ending iterator to dynamic SymbolEntrys.
|
|
virtual void | removeSymbol (Symbol *symbol) |
| Remove the given Symbol from this Scope.
|
|
virtual void | renameSymbol (Symbol *sym, const string &newname) |
| Rename a Symbol within this Scope.
|
|
virtual void | retypeSymbol (Symbol *sym, Datatype *ct) |
| Change the data-type of a Symbol within this Scope. More...
|
|
virtual void | setAttribute (Symbol *sym, uint4 attr) |
| Set boolean Varnode properties on a Symbol.
|
|
virtual void | clearAttribute (Symbol *sym, uint4 attr) |
| Clear boolean Varnode properties on a Symbol.
|
|
virtual void | setDisplayFormat (Symbol *sym, uint4 attr) |
| Set the display format for a Symbol.
|
|
virtual SymbolEntry * | findAddr (const Address &addr, const Address &usepoint) const |
| Find a Symbol at a given address and usepoint. More...
|
|
virtual SymbolEntry * | findContainer (const Address &addr, int4 size, const Address &usepoint) const |
| Find the smallest Symbol containing the given memory range. More...
|
|
virtual SymbolEntry * | findClosestFit (const Address &addr, int4 size, const Address &usepoint) const |
| Find Symbol which is the closest fit to the given memory range. More...
|
|
virtual Funcdata * | findFunction (const Address &addr) const |
| Find the function starting at the given address. More...
|
|
virtual ExternRefSymbol * | findExternalRef (const Address &addr) const |
| Find an external reference at the given address. More...
|
|
virtual LabSymbol * | findCodeLabel (const Address &addr) const |
| Find a label Symbol at the given address. More...
|
|
virtual SymbolEntry * | findOverlap (const Address &addr, int4 size) const |
| Find first Symbol overlapping the given memory range. More...
|
|
virtual SymbolEntry * | findBefore (const Address &addr) const |
| Find first Symbol before (but not containing) a given address. More...
|
|
virtual SymbolEntry * | findAfter (const Address &addr) const |
| Find first Symbol after (but not containing) a given address. More...
|
|
virtual void | findByName (const string &name, vector< Symbol * > &res) const |
| Find a Symbol by name within this Scope. More...
|
|
virtual Funcdata * | resolveExternalRefFunction (ExternRefSymbol *sym) const |
| Convert an external reference to the referenced function. More...
|
|
virtual string | buildUndefinedName (void) const |
| Build a formal undefined name, used internally when a Symbol is not given a name. More...
|
|
virtual string | makeNameUnique (const string &nm) const |
| Produce a version of the given symbol name that won't collide with other names in this Scope. More...
|
|
virtual void | printEntries (ostream &s) const |
| Dump a description of all SymbolEntry objects to a stream.
|
|
virtual int4 | getCategorySize (int4 cat) const |
| Get the number of Symbols in the given category. More...
|
|
virtual Symbol * | getCategorySymbol (int4 cat, int4 ind) const |
| Retrieve a Symbol by index within a specific category. More...
|
|
virtual void | setCategory (Symbol *sym, int4 cat, int4 ind) |
| Set the category and index for the given Symbol. More...
|
|
| Scope (const string &nm, Architecture *g) |
| Construct an empty scope, given a name and Architecture.
|
|
virtual | ~Scope (void) |
| Destructor.
|
|
virtual bool | inScope (const Address &addr, int4 size, const Address &usepoint) const |
| Query if the given range is owned by this Scope. More...
|
|
virtual SymbolEntry * | addSymbol (const string &name, Datatype *ct, const Address &addr, const Address &usepoint) |
| Add a new Symbol to this Scope, given a name, data-type, and a single mapping. More...
|
|
const string & | getName (void) const |
| Get the name of the Scope.
|
|
bool | isGlobal (void) const |
| Return true if this scope is global.
|
|
void | queryByName (const string &name, vector< Symbol * > &res) const |
| Look-up symbols by name. More...
|
|
Funcdata * | queryFunction (const string &name) const |
| Look-up a function by name. More...
|
|
SymbolEntry * | queryByAddr (const Address &addr, const Address &usepoint) const |
| Get Symbol with matching address. More...
|
|
SymbolEntry * | queryContainer (const Address &addr, int4 size, const Address &usepoint) const |
| Find the smallest containing Symbol. More...
|
|
SymbolEntry * | queryProperties (const Address &addr, int4 size, const Address &usepoint, uint4 &flags) const |
| Find a Symbol or properties at the given address. More...
|
|
Funcdata * | queryFunction (const Address &addr) const |
| Look-up a function by address. More...
|
|
Funcdata * | queryExternalRefFunction (const Address &addr) const |
| Look-up a function thru an external reference. More...
|
|
LabSymbol * | queryCodeLabel (const Address &addr) const |
| Look-up a code label by address. More...
|
|
Scope * | resolveScope (const string &name) const |
| Find a child Scope of this. More...
|
|
Scope * | discoverScope (const Address &addr, int4 sz, const Address &usepoint) |
| Find the owning Scope of a given memory range. More...
|
|
ScopeMap::const_iterator | childrenBegin () const |
| Beginning iterator of child scopes.
|
|
ScopeMap::const_iterator | childrenEnd () const |
| Ending iterator of child scopes.
|
|
void | saveXmlRecursive (ostream &s, bool onlyGlobal) const |
| Save all contained scopes as an XML stream. More...
|
|
void | overrideSizeLockType (Symbol *sym, Datatype *ct) |
| Change the data-type of a Symbol that is sizelocked. More...
|
|
void | resetSizeLockType (Symbol *sym) |
| Clear a Symbol's size-locked data-type. More...
|
|
bool | isSubScope (const Scope *scp) const |
| Is this a sub-scope of the given Scope. More...
|
|
string | getFullName (void) const |
| Get the full name of this Scope.
|
|
void | getNameSegments (vector< string > &vec) const |
| Get the fullname of this in segments. More...
|
|
Architecture * | getArch (void) const |
| Get the Architecture associated with this.
|
|
Scope * | getParent (void) const |
| Get the parent Scope (or NULL if this is the global Scope)
|
|
Symbol * | addSymbol (const string &name, Datatype *ct) |
| Add a new Symbol without mapping it to an address. More...
|
|
SymbolEntry * | addMapPoint (Symbol *sym, const Address &addr, const Address &usepoint) |
| Map a Symbol to a specific address. More...
|
|
Symbol * | addMapSym (const Element *el) |
| Add a mapped Symbol from a <mapsym> XML tag. More...
|
|
FunctionSymbol * | addFunction (const Address &addr, const string &nm) |
| Create a function Symbol at the given address in this Scope. More...
|
|
ExternRefSymbol * | addExternalRef (const Address &addr, const Address &refaddr, const string &nm) |
|
LabSymbol * | addCodeLabel (const Address &addr, const string &nm) |
| Create a code label at the given address in this Scope. More...
|
|
Symbol * | addDynamicSymbol (const string &nm, Datatype *ct, const Address &caddr, uint8 hash) |
| Create a dynamically mapped Symbol attached to a specific data-flow. More...
|
|
bool | isReadOnly (const Address &addr, int4 size, const Address &usepoint) const |
| Is the given memory range marked as read-only. More...
|
|
void | printBounds (ostream &s) const |
| Print a description of this Scope's owned memory ranges.
|
|
|
static void | savePathXml (ostream &s, const vector< string > &vec) |
| Save a path with <val> tags. More...
|
|
static void | restorePathXml (vector< string > &vec, const Element *el) |
| Restore path from <val> tags. More...
|
|
virtual void | addSymbolInternal (Symbol *sym) |
| Put a Symbol into the name map. More...
|
|
virtual SymbolEntry * | addMapInternal (Symbol *sym, uint4 exfl, const Address &addr, int4 off, int4 sz, const RangeList &uselim) |
| Create a new SymbolEntry for a Symbol given a memory range. More...
|
|
virtual SymbolEntry * | addDynamicMapInternal (Symbol *sym, uint4 exfl, uint8 hash, int4 off, int4 sz, const RangeList &uselim) |
| Create a new SymbolEntry for a Symbol given a dynamic hash. More...
|
|
const RangeList & | getRangeTree (void) const |
| Access the address ranges owned by this Scope.
|
|
virtual void | restrictScope (Funcdata *f) |
| Convert this to a local Scope. More...
|
|
virtual void | addRange (AddrSpace *spc, uintb first, uintb last) |
| Add a memory range to the ownership of this Scope. More...
|
|
virtual void | removeRange (AddrSpace *spc, uintb first, uintb last) |
| Remove a memory range from the ownership of this Scope. More...
|
|
SymbolEntry * | addMap (const SymbolEntry &entry) |
| Integrate a SymbolEntry into the range maps. More...
|
|
static const Scope * | stackAddr (const Scope *scope1, const Scope *scope2, const Address &addr, const Address &usepoint, SymbolEntry **addrmatch) |
| Query for Symbols starting at a given address, which match a given usepoint. More...
|
|
static const Scope * | stackContainer (const Scope *scope1, const Scope *scope2, const Address &addr, int4 size, const Address &usepoint, SymbolEntry **addrmatch) |
|
static const Scope * | stackClosestFit (const Scope *scope1, const Scope *scope2, const Address &addr, int4 size, const Address &usepoint, SymbolEntry **addrmatch) |
|
static const Scope * | stackFunction (const Scope *scope1, const Scope *scope2, const Address &addr, Funcdata **addrmatch) |
|
static const Scope * | stackExternalRef (const Scope *scope1, const Scope *scope2, const Address &addr, ExternRefSymbol **addrmatch) |
|
static const Scope * | stackCodeLabel (const Scope *scope1, const Scope *scope2, const Address &addr, LabSymbol **addrmatch) |
|
SymbolNameTree | nametree |
| The set of Symbol objects, sorted by name.
|
|
vector< EntryMap * > | maptable |
| Rangemaps of SymbolEntry, one map for each address space.
|
|
vector< vector< Symbol * > > | category |
| References to Symbol objects organized by category.
|
|
list< SymbolEntry > | dynamicentry |
| Dynamic symbol entries.
|
|
Architecture * | glb |
| Architecture of this scope.
|
|
string | name |
| Name of this scope.
|
|
Funcdata * | fd |
| (If non-null) the function which this is the local Scope for
|
|
uint4 | dedupId |
| Id to dedup scopes with same name (when allowed)
|
|