@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		if (contextRegisters != null) {
			sb.append("Registers: ");
			int size = contextRegisters.size();
			for (int i = 0; i < size; i++) {
				sb.append(contextRegisters.get(i).getContextRegister());
				sb.append(": ");
				sb.append(contextRegisters.get(i).getValue());
				sb.append(" ");
			}
			sb.append("\n");
		}
		sb.append("Prebytes: ");
		sb.append(preBytes);
		sb.append("\n");
		if (preInst != null) {
			sb.append("preInstructions: ");
			sb.append(preInst.toString());
		}
		sb.append("\nAddress: ");
		sb.append(address.toString());
		sb.append("\nfirstInstructions: ");
		sb.append(firstInst.toString());
		sb.append("\nfirstBytes: ");
		sb.append(firstBytes);
		sb.append("\nreturns:");
		int numReturns = returnBytes.size();
		for (int i = 0; i < numReturns; ++i) {
			sb.append("\n  bytes:\n   ");
			sb.append(returnBytes.get(i));
			sb.append("\n  inst:\n   ");
			sb.append(returnInst.get(i));
		}

		return sb.toString();
	}
Creates a {@link FunctionBitPatternInfo} object consisting of information gathered
for a given {@link Function} using the specified {@link DataGatheringParams}
@param program {@link Program} containing the {@link Function}
@param func {@link Function} to gather data about
@param params parameters controlling how much data is gathered
Ghidra/Features/BytePatterns/src/main/java/ghidra/bitpatterns/info/FunctionBitPatternInfo.java