public String dump(int maxOut) {
		int outputLength = Math.min(getLength(), maxOut);
		StringBuilder builder = new StringBuilder();
		builder.append("Length: ");
		builder.append(getLength());
		builder.append(String.format(" (0x%08x)", getLength()));
		// If length is zero or negative (e.g., -1), done.
		if (outputLength <= 0) {
			return "";
		}
		byte[] bytes = new byte[outputLength];
		try {
			read(0, bytes, 0, outputLength);
		}
		catch (IOException e) {
			// Should not occur.  We limited our request to be <= the Stream length.
			throw new AssertException("Total bonkers: PDB Stream does not contain advertised data");
		}
		catch (CancelledException e) {
			// Should not occur.  We limited our request to be <= the Stream length.
			throw new AssertException("CancelledException Thrown");
		}
		for (int i = 0; i < outputLength;) {
			builder.append(String.format("\n%06x", i));
			for (int j = 0; (j < 16) && (i < outputLength); j++, i++) {
				builder.append(String.format(" %02x", bytes[i]));
			}
		}
		return builder.toString();
	}
Debug method to dump the PDB Directory in a pretty format to String
@param maxOut maximum number of bytes to output
@return {@link String} containing the pretty output
Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/msf/MsfStream.java