Package ghidra.trace.database.listing
Class DBTraceInstructionsMemoryView
java.lang.Object
ghidra.trace.database.listing.AbstractBaseDBTraceCodeUnitsMemoryView<DBTraceInstruction,DBTraceInstructionsView>
ghidra.trace.database.listing.DBTraceInstructionsMemoryView
- All Implemented Interfaces:
InternalBaseCodeUnitsView<TraceInstruction>,InternalTraceBaseDefinedUnitsView<TraceInstruction>,DBTraceDelegatingManager<DBTraceInstructionsView>,TraceBaseCodeUnitsView<TraceInstruction>,TraceBaseDefinedUnitsView<TraceInstruction>,TraceInstructionsView
public class DBTraceInstructionsMemoryView
extends AbstractBaseDBTraceCodeUnitsMemoryView<DBTraceInstruction,DBTraceInstructionsView>
implements TraceInstructionsView, InternalTraceBaseDefinedUnitsView<TraceInstruction>
The implementation of
TraceCodeOperations.definedData()-
Nested Class Summary
Nested classes/interfaces inherited from interface ghidra.trace.database.space.DBTraceDelegatingManager
DBTraceDelegatingManager.ExcConsumer<T,E extends Throwable>, DBTraceDelegatingManager.ExcFunction<T, R, E extends Throwable>, DBTraceDelegatingManager.ExcPredicate<T, E extends Throwable>, DBTraceDelegatingManager.ExcSupplier<T, E extends Throwable> -
Field Summary
Fields inherited from class ghidra.trace.database.listing.AbstractBaseDBTraceCodeUnitsMemoryView
manager -
Constructor Summary
ConstructorsConstructorDescriptionConstruct the view -
Method Summary
Modifier and TypeMethodDescriptionaddInstructionSet(Lifespan lifespan, TracePlatform platform, InstructionSet instructionSet, boolean overwrite) Create several instructionsvoidclear(Lifespan span, AddressRange range, boolean clearContext, TaskMonitor monitor) Clear the units contained within the given span and address range.create(Lifespan lifespan, Address address, TracePlatform platform, InstructionPrototype prototype, ProcessorContextView context, int forcedLengthOverride) Create an instructionprotected DBTraceInstructionsViewgetView(DBTraceCodeSpace space) Get the individual view from the given spaceMethods inherited from class ghidra.trace.database.listing.AbstractBaseDBTraceCodeUnitsMemoryView
containsAddress, coversRange, coversRange, emptyOrFullAddressSetUndefined, emptyOrFullIterableUndefined, emptyOrFullIterableUndefined, falseOrTrueUndefined, get, get, get, get, get, getAddressSetView, getAddressSetView, getAfter, getAt, getBefore, getCeiling, getContaining, getFloor, getForSpace, getIntersecting, getSpace, getTrace, intersectsRange, intersectsRange, nextAddress, nullOrUndefined, prevAddress, readLock, size, writeLockMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ghidra.trace.database.space.DBTraceDelegatingManager
checkIsInMemory, delegateAddressSet, delegateAny, delegateCollection, delegateDeleteB, delegateDeleteV, delegateFirst, delegateHashSet, delegateRead, delegateRead, delegateReadB, delegateReadI, delegateReadI, delegateReadOr, delegateWrite, delegateWriteAll, delegateWriteI, delegateWriteVMethods inherited from interface ghidra.trace.database.listing.InternalBaseCodeUnitsView
get, getContaining, getForRegister, getSpaceMethods inherited from interface ghidra.trace.database.listing.InternalTraceBaseDefinedUnitsView
clearMethods inherited from interface ghidra.trace.model.listing.TraceBaseCodeUnitsView
containsAddress, coversRange, coversRange, get, get, get, get, get, get, getAddressSetView, getAddressSetView, getAfter, getAt, getBefore, getCeiling, getContaining, getContaining, getFloor, getForRegister, getIntersecting, getTrace, intersectsRange, intersectsRange, sizeMethods inherited from interface ghidra.trace.model.listing.TraceBaseDefinedUnitsView
clearMethods inherited from interface ghidra.trace.model.listing.TraceInstructionsView
addInstructionSet, create
-
Constructor Details
-
DBTraceInstructionsMemoryView
Construct the view- Parameters:
manager- the manager
-
-
Method Details
-
getView
Description copied from class:AbstractBaseDBTraceCodeUnitsMemoryViewGet the individual view from the given space- Specified by:
getViewin classAbstractBaseDBTraceCodeUnitsMemoryView<DBTraceInstruction,DBTraceInstructionsView> - Parameters:
space- the space, bound to a specific address space- Returns:
- the view
-
clear
public void clear(Lifespan span, AddressRange range, boolean clearContext, TaskMonitor monitor) throws CancelledException Description copied from interface:TraceBaseDefinedUnitsViewClear the units contained within the given span and address range.Any units alive before the given span are truncated instead of deleted. That is, their end snaps are reduced such that they no longer intersect the given span. Note that the same is not true of a unit's start snap. If the start snap is contained in the span, the unit is deleted, even if its end snap is outside the span.
- Specified by:
clearin interfaceTraceBaseDefinedUnitsView<TraceInstruction>- Parameters:
span- the span to clearrange- the range to clearclearContext- true to clear the register context as wellmonitor- a monitor for progress and cancellation- Throws:
CancelledException- if the clear is cancelled
-
create
public DBTraceInstruction create(Lifespan lifespan, Address address, TracePlatform platform, InstructionPrototype prototype, ProcessorContextView context, int forcedLengthOverride) throws CodeUnitInsertionException Description copied from interface:TraceInstructionsViewCreate an instruction- Specified by:
createin interfaceTraceInstructionsView- Parameters:
lifespan- the lifespan for the instruction unitaddress- the starting address of the instructionplatform- the platformprototype- the instruction prototypecontext- the input disassembly context for the instructionforcedLengthOverride- reduced instruction byte-length (1..7) or 0 to use default length- Returns:
- the new instruction
- Throws:
CodeUnitInsertionException- if the instruction cannot be created
-
addInstructionSet
public AddressSetView addInstructionSet(Lifespan lifespan, TracePlatform platform, InstructionSet instructionSet, boolean overwrite) Description copied from interface:TraceInstructionsViewCreate several instructionsNOTE: This does not throw
CodeUnitInsertionException. Conflicts are instead recorded in theinstructionSet.- Specified by:
addInstructionSetin interfaceTraceInstructionsView- Parameters:
lifespan- the lifespan for all instruction unitsplatform- the optional guest platform, null for the hostinstructionSet- the set of instructions to addoverwrite- true to replace conflicting instructions- Returns:
- the (host) address set of instructions actually added
-