|
| ScopeInternal (uint8 id, const string &nm, Architecture *g) |
| Construct the Scope. More...
|
|
| ScopeInternal (uint8 id, const string &nm, Architecture *g, Scope *own) |
| Construct as a cache.
|
|
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 void | adjustCaches (void) |
| Let scopes internally adjust any caches. More...
|
|
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 | removeSymbolMappings (Symbol *symbol) |
| Remove all SymbolEntrys from the given Symbol.
|
|
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 void | findByName (const string &name, vector< Symbol * > &res) const |
| Find a Symbol by name within this Scope. More...
|
|
virtual bool | isNameUsed (const string &nm, const Scope *op2) const |
| Check if the given name is occurs within the given scope path. More...
|
|
virtual Funcdata * | resolveExternalRefFunction (ExternRefSymbol *sym) const |
| Convert an external reference to the referenced function. More...
|
|
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...
|
|
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 | 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 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...
|
|
void | assignDefaultNames (int4 &base) |
| Assign a default name (via buildVariableName) to any unnamed symbol. More...
|
|
| Scope (uint8 id, const string &nm, Architecture *g, Scope *own) |
| 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...
|
|
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, bool strategy) 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...
|
|
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 | getScopePath (vector< const Scope * > &vec) const |
| Get the ordered list of scopes up to this. More...
|
|
const Scope * | findDistinguishingScope (const Scope *op2) const |
| Find first ancestor of this not shared by given scope. More...
|
|
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...
|
|
string | buildDefaultName (Symbol *sym, int4 &base, Varnode *vn) const |
| Create a default name for the given Symbol. More...
|
|
bool | isReadOnly (const Address &addr, int4 size, const Address &usepoint) const |
| Is the given memory range marked as read-only. More...
|
|
An in-memory implementation of the Scope interface.
This can act as a stand-alone Scope object or serve as an in-memory cache for another implementation. This implements a nametree, which is a a set of Symbol objects (the set owns the Symbol objects). It also implements a maptable, which is a list of rangemaps that own the SymbolEntry objects.