decompiler
1.0.0
|
A function Symbol referring to an external location. More...
#include <database.hh>
Public Member Functions | |
ExternRefSymbol (Scope *sc, const Address &ref, const string &nm) | |
Construct given a placeholder address. More... | |
ExternRefSymbol (Scope *sc) | |
For use with restoreXml. | |
const Address & | getRefAddr (void) const |
Return the placeholder address. | |
virtual void | saveXml (ostream &s) const |
Save this Symbol to an XML stream. More... | |
virtual void | restoreXml (const Element *el) |
Restore this Symbol from an XML stream. More... | |
Public Member Functions inherited from Symbol | |
Symbol (Scope *sc, const string &nm, Datatype *ct) | |
Construct given a name and data-type. | |
Symbol (Scope *sc) | |
Construct for use with restoreXml() | |
const string & | getName (void) const |
Get the local name of the symbol. | |
Datatype * | getType (void) const |
Get the data-type. | |
uint4 | getId (void) const |
Get a unique id for the symbol. | |
uint4 | getFlags (void) const |
Get the boolean properties of the Symbol. | |
uint4 | getDisplayFormat (void) const |
Get the format to display the Symbol in. | |
int2 | getCategory (void) const |
Get the Symbol category. | |
uint2 | getCategoryIndex (void) const |
Get the position of the Symbol within its category. | |
bool | isTypeLocked (void) const |
Is the Symbol type-locked. | |
bool | isNameLocked (void) const |
Is the Symbol name-locked. | |
bool | isSizeTypeLocked (void) const |
Is the Symbol size type-locked. | |
bool | isIndirectStorage (void) const |
Is storage really a pointer to the true Symbol. | |
bool | isHiddenReturn (void) const |
Is this a reference to the function return value. | |
bool | isNameUndefined (void) const |
Does this have an undefined name. More... | |
Scope * | getScope (void) const |
Get the scope owning this Symbol. | |
SymbolEntry * | getFirstWholeMap (void) const |
Get the first entire mapping of the symbol. More... | |
SymbolEntry * | getMapEntry (const Address &addr) const |
Get first mapping of the symbol that contains the given Address. More... | |
void | saveXmlHeader (ostream &s) const |
Save basic Symbol properties as XML attributes. More... | |
void | restoreXmlHeader (const Element *el) |
Restore basic Symbol properties from XML. More... | |
void | saveXmlBody (ostream &s) const |
Save details of the Symbol to XML. More... | |
void | restoreXmlBody (List::const_iterator iter) |
Restore details of the Symbol from XML. More... | |
Private Member Functions | |
void | buildNameType (void) |
Create a name and data-type for the Symbol. More... | |
Private Attributes | |
Address | refaddr |
The placeholder address for meta-data. | |
Additional Inherited Members | |
Public Types inherited from Symbol | |
enum | { force_hex = 1, force_dec = 2, force_oct = 3, force_bin = 4, force_char = 5, size_typelock = 8 } |
Possible display (dispflag) properties for a Symbol. More... | |
Protected Member Functions inherited from Symbol | |
virtual | ~Symbol (void) |
Destructor. | |
void | setDisplayFormat (uint4 val) |
Set the display format for this Symbol. More... | |
void | checkSizeTypeLock (void) |
Calculate if size_typelock property is on. More... | |
Protected Attributes inherited from Symbol | |
Scope * | scope |
The scope that owns this symbol. | |
string | name |
The local name of the symbol. | |
uint4 | nameDedup |
id to distinguish symbols with the same name | |
Datatype * | type |
The symbol's data-type. | |
uint4 | flags |
Varnode-like properties of the symbol. | |
uint4 | dispflags |
Flags affecting the display of this symbol. | |
int2 | category |
Special category (-1==none 0=parameter 1=equate) | |
uint2 | catindex |
Index within category. | |
vector< list< SymbolEntry >::iterator > | mapentry |
List of storage locations labeled with this Symbol. | |
A function Symbol referring to an external location.
This Symbol is intended to label functions that have not been mapped directly into the image being analyzed. It holds a level of indirection between the address the image expects the symbol to be at and a placeholder address the system hangs meta-data on.
Construct given a placeholder address.
sc | is the Scope containing the Symbol |
ref | is the placeholder address where the system will hold meta-data |
nm | is the name of the Symbol |
References buildNameType(), and refaddr.
|
private |
Create a name and data-type for the Symbol.
Build name, type, and flags based on the placeholder address.
References Varnode::externref, Symbol::flags, Address::getAddrSize(), Scope::getArch(), Address::getShortcut(), Address::getSpace(), TypeFactory::getTypeCode(), TypeFactory::getTypePointer(), AddrSpace::getWordSize(), Symbol::name, Address::printRaw(), refaddr, Symbol::scope, Symbol::type, Varnode::typelock, and Architecture::types.
Referenced by ExternRefSymbol(), and restoreXml().
|
virtual |
Restore this Symbol from an XML stream.
el | is the root XML tag of the symbol |
Reimplemented from Symbol.
References buildNameType(), Scope::getArch(), Symbol::name, refaddr, Address::restoreXml(), and Symbol::scope.
|
virtual |
Save this Symbol to an XML stream.
s | is the output stream |
Reimplemented from Symbol.
References Symbol::name, refaddr, and Address::saveXml().