Class TraceMemoryStatePcodeExecutorStatePiece

java.lang.Object
ghidra.pcode.exec.AbstractLongOffsetPcodeExecutorStatePiece<byte[],TraceMemoryState,AddressSpace>
ghidra.pcode.exec.trace.TraceMemoryStatePcodeExecutorStatePiece
All Implemented Interfaces:
PcodeExecutorStatePiece<byte[],TraceMemoryState>

public class TraceMemoryStatePcodeExecutorStatePiece extends AbstractLongOffsetPcodeExecutorStatePiece<byte[],TraceMemoryState,AddressSpace>
The p-code execute state piece for TraceMemoryState

This state piece is meant to be used as an auxiliary to a concrete trace-bound state. It should be used with TraceMemoryStatePcodeArithmetic as a means of computing the "state" of a Sleigh expression's value. It essentially works like a rudimentary taint analyzer: If any part of any input to the expression in tainted, i.e., not TraceMemoryState.KNOWN, then the result is TraceMemoryState.UNKNOWN. This is best exemplified in getUnique(long, int, Reason, PcodeStateCallbacks), though it's also exemplified in getFromSpace(AddressSpace, long, int, Reason, PcodeStateCallbacks).

NOTE: This is backed directly by the trace rather than using PcodeStateCallbacks.