public static PcodeExecutor<byte[]> buildByteExecutor(TracePlatform platform, long snap,
			TraceThread thread, int frame) {
		DirectBytesTracePcodeExecutorState state =
			new DirectBytesTracePcodeExecutorState(platform, snap, thread, frame);
		Language language = platform.getLanguage();
		if (!(language instanceof SleighLanguage)) {
			throw new IllegalArgumentException("TracePlatform must use a Sleigh language");
		}
		return new PcodeExecutor<>((SleighLanguage) language,
			BytesPcodeArithmetic.forLanguage(language), state, Reason.INSPECT);
	}
Build a p-code executor that operates directly on bytes of the given trace

<p>
This execute is most suitable for evaluating Sleigh expression on a given trace snapshot, and
for manipulating or initializing variables using Sleigh code. It is generally not suitable
for use in an emulator. For that, consider {@link BytesTracePcodeEmulator}.

@param platform the platform
@param snap the snap
@param thread the thread, required if register space is used
@param frame the frame, for when register space is used
@return the executor
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/pcode/exec/trace/TraceSleighUtils.java