@Override
	public AddressSetView addInstructionSet(Lifespan lifespan, TracePlatform platform,
			InstructionSet instructionSet, boolean overwrite) {
		InstructionSet mappedSet = platform.mapGuestInstructionAddressesToHost(instructionSet);

		Map<AddressSpace, InstructionSet> breakDown = new HashMap<>();
		// TODO: I'm not sure the consequences of breaking an instruction set down.
		for (InstructionBlock block : mappedSet) {
			InstructionSet setPerSpace =
				breakDown.computeIfAbsent(block.getStartAddress().getAddressSpace(),
					s -> new InstructionSet(manager.getTrace().getBaseAddressFactory()));
			setPerSpace.addBlock(block);
		}
		AddressSet result = new AddressSet();
		try (LockHold hold = LockHold.lock(manager.writeLock())) {
			for (Entry<AddressSpace, InstructionSet> entry : breakDown.entrySet()) {
				DBTraceInstructionsView instructionsView = getForSpace(entry.getKey(), true);
				result.add(instructionsView.addInstructionSet(lifespan, platform, entry.getValue(),
					overwrite));
			}
			return result;
		}
	}
Construct the view

@param manager the manager
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/listing/DBTraceInstructionsMemoryView.java