Package ghidra.trace.database.context
Class DBTraceRegisterContextSpace
java.lang.Object
ghidra.trace.database.context.DBTraceRegisterContextSpace
- All Implemented Interfaces:
DBTraceSpaceBased,TraceRegisterContextOperations,TraceRegisterContextSpace,TraceSpaceMixin
public class DBTraceRegisterContextSpace
extends Object
implements TraceRegisterContextSpace, DBTraceSpaceBased
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final AddressRangeprotected final Languageprotected final DBHandleprotected final ReadWriteLockprotected final DBTraceRegisterContextManagerprotected final DBCachedObjectStore<DBTraceRegisterContextSpace.DBTraceRegisterEntry> protected final Map<org.apache.commons.lang3.tuple.Pair<Language, Register>, DBTraceAddressSnapRangePropertyMapSpace<byte[], DBTraceRegisterContextManager.DBTraceRegisterContextEntry>> protected final AddressSpaceprotected static final Stringprotected final DBTrace -
Constructor Summary
ConstructorsConstructorDescriptionDBTraceRegisterContextSpace(DBTraceRegisterContextManager manager, DBHandle dbh, AddressSpace space, AbstractDBTraceSpaceBasedManager.DBTraceSpaceEntry ent) -
Method Summary
Modifier and TypeMethodDescriptionvoidclear(Lifespan span, AddressRange range) protected DBTraceAddressSnapRangePropertyMapSpace<byte[], DBTraceRegisterContextManager.DBTraceRegisterContextEntry> createRegisterValueMap(org.apache.commons.lang3.tuple.Pair<Language, Register> lr) protected RegisterValuedoGetBaseValue(Language language, Register base, long snap, Address address) protected voiddoPut(DBTraceAddressSnapRangePropertyMapSpace<byte[], ?> valueMap, TraceAddressSnapRange range, byte[] bytes) protected voiddoRemove(DBTraceAddressSnapRangePropertyMapSpace<byte[], ?> valueMap, TraceAddressSnapRange range) protected voiddoSetBaseValue(Language language, RegisterValue baseValue, Lifespan lifespan, AddressRange range) protected Set<TraceAddressSnapRange> doSubtract(TraceAddressSnapRange from, TraceAddressSnapRange remove) Get the object's address spacegetDefaultValue(Language language, Register register, Address address) Get the language-defined default value of the registergetRegisterValueAddressRanges(Language language, Register register, long snap) getRegisterValueAddressRanges(Language language, Register register, long snap, AddressRange within) protected DBTraceAddressSnapRangePropertyMapSpace<byte[], DBTraceRegisterContextManager.DBTraceRegisterContextEntry> getRegisterValueMap(Language language, Register register, boolean createIfAbsent) getTrace()Get the trace containing the objectprotected RegisterValuegetValueWithDefault(Language language, Register register, long snap, Address hostAddress, Address langAddress) getValueWithDefault(TracePlatform platform, Register register, long snap, Address guestAddress) booleanhasRegisterValue(Language language, Register register, long snap) booleanhasRegisterValueInAddressRange(Language language, Register register, long snap, AddressRange within) voidprotected voidvoidremoveValue(Language language, Register register, Lifespan span, AddressRange range) voidsetValue(Language language, RegisterValue value, Lifespan lifespan, AddressRange range) protected StringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ghidra.trace.database.space.DBTraceSpaceBased
assertInSpace, assertInSpace, explainLanguages, isMySpace, toAddress, toOverlayMethods inherited from interface ghidra.trace.util.TraceSpaceMixin
getFrameLevel, getThread
-
Field Details
-
TABLE_NAME
- See Also:
-
manager
-
dbh
-
space
-
lock
-
baseLanguage
-
trace
-
all
-
registerStore
-
registerValueMaps
protected final Map<org.apache.commons.lang3.tuple.Pair<Language,Register>, registerValueMapsDBTraceAddressSnapRangePropertyMapSpace<byte[], DBTraceRegisterContextManager.DBTraceRegisterContextEntry>>
-
-
Constructor Details
-
DBTraceRegisterContextSpace
public DBTraceRegisterContextSpace(DBTraceRegisterContextManager manager, DBHandle dbh, AddressSpace space, AbstractDBTraceSpaceBasedManager.DBTraceSpaceEntry ent) throws VersionException, IOException - Throws:
VersionExceptionIOException
-
-
Method Details
-
loadRegisterValueMaps
- Throws:
VersionException
-
getTrace
Description copied from interface:TraceSpaceMixinGet the trace containing the object- Specified by:
getTracein interfaceTraceSpaceMixin- Returns:
- the trace
-
getAddressSpace
Description copied from interface:TraceSpaceMixinGet the object's address space- Specified by:
getAddressSpacein interfaceTraceRegisterContextSpace- Specified by:
getAddressSpacein interfaceTraceSpaceMixin- Returns:
- the address space
-
tableName
-
createRegisterValueMap
protected DBTraceAddressSnapRangePropertyMapSpace<byte[],DBTraceRegisterContextManager.DBTraceRegisterContextEntry> createRegisterValueMap(org.apache.commons.lang3.tuple.Pair<Language, Register> lr) throws VersionException- Throws:
VersionException
-
getRegisterValueMap
protected DBTraceAddressSnapRangePropertyMapSpace<byte[],DBTraceRegisterContextManager.DBTraceRegisterContextEntry> getRegisterValueMap(Language language, Register register, boolean createIfAbsent) -
doSubtract
protected Set<TraceAddressSnapRange> doSubtract(TraceAddressSnapRange from, TraceAddressSnapRange remove) -
doPut
protected void doPut(DBTraceAddressSnapRangePropertyMapSpace<byte[], ?> valueMap, TraceAddressSnapRange range, byte[] bytes) -
doRemove
protected void doRemove(DBTraceAddressSnapRangePropertyMapSpace<byte[], ?> valueMap, TraceAddressSnapRange range) -
doSetBaseValue
protected void doSetBaseValue(Language language, RegisterValue baseValue, Lifespan lifespan, AddressRange range) -
setValue
- Specified by:
setValuein interfaceTraceRegisterContextOperations
-
removeValue
- Specified by:
removeValuein interfaceTraceRegisterContextOperations
-
getDefaultValue
Description copied from interface:TraceRegisterContextOperationsGet the language-defined default value of the register- Specified by:
getDefaultValuein interfaceTraceRegisterContextOperations- Parameters:
language- the languageregister- a register in the languageaddress- the address from which to read the context- Returns:
- the default value, or
nullif no default is defined for the parameters
-
doGetBaseValue
protected RegisterValue doGetBaseValue(Language language, Register base, long snap, Address address) -
getValue
- Specified by:
getValuein interfaceTraceRegisterContextOperations
-
getEntry
public Map.Entry<TraceAddressSnapRange,RegisterValue> getEntry(Language language, Register register, long snap, Address address) - Specified by:
getEntryin interfaceTraceRegisterContextOperations
-
getValueWithDefault
protected RegisterValue getValueWithDefault(Language language, Register register, long snap, Address hostAddress, Address langAddress) -
getValueWithDefault
public RegisterValue getValueWithDefault(TracePlatform platform, Register register, long snap, Address guestAddress) - Specified by:
getValueWithDefaultin interfaceTraceRegisterContextOperations
-
getRegisterValueAddressRanges
public AddressSetView getRegisterValueAddressRanges(Language language, Register register, long snap, AddressRange within) - Specified by:
getRegisterValueAddressRangesin interfaceTraceRegisterContextOperations
-
getRegisterValueAddressRanges
public AddressSetView getRegisterValueAddressRanges(Language language, Register register, long snap) - Specified by:
getRegisterValueAddressRangesin interfaceTraceRegisterContextOperations
-
hasRegisterValueInAddressRange
public boolean hasRegisterValueInAddressRange(Language language, Register register, long snap, AddressRange within) - Specified by:
hasRegisterValueInAddressRangein interfaceTraceRegisterContextOperations
-
hasRegisterValue
- Specified by:
hasRegisterValuein interfaceTraceRegisterContextOperations
-
clear
- Specified by:
clearin interfaceTraceRegisterContextOperations
-
invalidateCache
public void invalidateCache()- Specified by:
invalidateCachein interfaceDBTraceSpaceBased
-