Package ghidra.program.model.pcode
Class DynamicEntry
- java.lang.Object
-
- ghidra.program.model.pcode.SymbolEntry
-
- ghidra.program.model.pcode.DynamicEntry
-
public class DynamicEntry extends SymbolEntry
A HighSymbol mapping based on local hashing of the symbol's Varnode within a function's syntax tree. The storage address of a temporary Varnode (a Varnode in the "unique" address space) is too ephemeral to use as a permanent way to identify it. This symbol stores a hash (generated by DynamicHash) that is better suited to identifying the Varnode.
-
-
Field Summary
-
Fields inherited from class ghidra.program.model.pcode.SymbolEntry
pcaddr, symbol
-
-
Constructor Summary
Constructors Constructor Description DynamicEntry(HighSymbol sym)Constructor for use with restoreXMLDynamicEntry(HighSymbol sym, Address addr, long h)Construct given the underlying symbol, defining Address of the Varnode, and the hash value
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static DynamicEntrybuild(Varnode vn)Build a new DynamicEntry, given the underlying temporary Varnode attached to a symbol.longgetHash()intgetSize()Get the number of bytes consumed by the symbol when using this storageVariableStoragegetStorage()Get the storage associated with this particular mapping of the SymbolbooleanisReadOnly()booleanisVolatile()voidrestoreXML(XmlPullParser parser)Restore this entry from the given XML stream.voidsaveXml(java.lang.StringBuilder buf)Save this entry as (a set of) XML tags to the given stream-
Methods inherited from class ghidra.program.model.pcode.SymbolEntry
buildRangelistXML, getPCAdress, parseRangeList
-
-
-
-
Constructor Detail
-
DynamicEntry
public DynamicEntry(HighSymbol sym)
Constructor for use with restoreXML- Parameters:
sym- is the owning HighSymbol
-
DynamicEntry
public DynamicEntry(HighSymbol sym, Address addr, long h)
Construct given the underlying symbol, defining Address of the Varnode, and the hash value- Parameters:
sym- is the given symboladdr- is the defining Addressh- is the hash value
-
-
Method Detail
-
getHash
public long getHash()
- Returns:
- the hash value
-
restoreXML
public void restoreXML(XmlPullParser parser) throws PcodeXMLException
Description copied from class:SymbolEntryRestore this entry from the given XML stream. Typically more than one tag is consumed- Specified by:
restoreXMLin classSymbolEntry- Parameters:
parser- is the given XML stream- Throws:
PcodeXMLException- if the XML is invalid
-
saveXml
public void saveXml(java.lang.StringBuilder buf)
Description copied from class:SymbolEntrySave this entry as (a set of) XML tags to the given stream- Specified by:
saveXmlin classSymbolEntry- Parameters:
buf- is the given stream
-
getStorage
public VariableStorage getStorage()
Description copied from class:SymbolEntryGet the storage associated with this particular mapping of the Symbol- Specified by:
getStoragein classSymbolEntry- Returns:
- the storage object
-
build
public static DynamicEntry build(Varnode vn)
Build a new DynamicEntry, given the underlying temporary Varnode attached to a symbol. The hash is created from local information in the syntax tree near the Varnode.- Parameters:
vn- is the underlying Varnode- Returns:
- the new DynamicEntry
-
getSize
public int getSize()
Description copied from class:SymbolEntryGet the number of bytes consumed by the symbol when using this storage- Specified by:
getSizein classSymbolEntry- Returns:
- the size of this entry
-
isReadOnly
public boolean isReadOnly()
- Specified by:
isReadOnlyin classSymbolEntry- Returns:
- true if the mapped storage is read-only
-
isVolatile
public boolean isVolatile()
- Specified by:
isVolatilein classSymbolEntry- Returns:
- true if the mapped storage is volatile
-
-