private SymLen getRandomAccessRecordFromStream(int streamNumber, int offset)
			throws CancelledException, PdbException {
		try {
			PdbByteReader reader;
			reader = pdb.getReaderForStreamNumber(streamNumber, offset, 2);
			int recordLength;
			try {
				recordLength = reader.parseUnsignedShortVal();
			}
			catch (PdbException pe) {
				// Catching this PdbException due to not more data, but letting one from parse()
				//  (below) get passed to caller
				return null;
			}
			// offset + 2 where 2 is sizeof(short)
			PdbByteReader recordReader =
				pdb.getReaderForStreamNumber(streamNumber, offset + 2, recordLength);
			AbstractMsSymbol symbol = SymbolParser.parse(pdb, recordReader);
			return new SymLen(symbol, recordLength + 2);
		}
		catch (IOException e) {
			return null;
		}
	}
Returns the symbol at the offset of the stream
@param streamNumber the stream
@param offset the stream offset
@return the PDB symbol
@throws PdbException upon moduleNumber out of range or no module information
@throws CancelledException upon user cancellation
Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/SymbolRecords.java