public DWARFRangeList getRangeList(DIEAggregate diea, DWARFAttribute attribute)
			throws IOException {

		DWARFNumericAttribute rngListAttr =
			diea.getAttribute(attribute, DWARFNumericAttribute.class);
		if (rngListAttr == null) {
			return null;
		}

		DWARFCompilationUnit cu = diea.getCompilationUnit();

		switch (rngListAttr.getAttributeForm()) {
			case DW_FORM_rnglistx: { // assumes v5
				int index = rngListAttr.getUnsignedIntExact();
				long rnglistOffset = rangeListTable.getOffset(index, cu);
				debugRngLists.setPointerIndex(rnglistOffset);
				return DWARFRangeList.readV5(debugRngLists, cu);
			}
			case DW_FORM_sec_offset:
			case DW_FORM_data2:
			case DW_FORM_data4:
			case DW_FORM_data8: {
				long rnglistOffset = rngListAttr.getValue();
				short dwarfVersion = cu.getDWARFVersion();
				if (dwarfVersion < 5) {
					debugRanges.setPointerIndex(rnglistOffset);
					return DWARFRangeList.readV4(debugRanges, cu);
				}
				else if (dwarfVersion == 5) {
					debugRngLists.setPointerIndex(rnglistOffset);
					return DWARFRangeList.readV5(debugRngLists, cu);
				}
				break;
			}
			default:
				break; // fall thru to throw
		}
		throw new IOException("Unsupported attribute form " + rngListAttr);
	}
Returns the {@link DWARFRangeList} pointed at by the specified attribute.

@param diea {@link DIEAggregate}
@param attribute attribute id to find in the DIEA
@return {@link DWARFRangeList}, or null if attribute is not present
@throws IOException if error reading range list
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFProgram.java