@Override
	public void close() throws IOException {
		if (sectionProvider != null) {
			sectionProvider.close();
		}
		if (debugStrings != null) {
			debugStrings.clear();
			debugStrings = null;
		}
		if (lineStrings != null) {
			lineStrings.clear();
			lineStrings = null;
		}
		compUnits.clear();
		dniCache.clear();

		debugAbbrBR = null;
		debugInfoBR = null;
		debugLineBR = null;
		debugLocation = null;
		debugLocLists = null;
		debugRanges = null;
		debugRngLists = null;
		debugAddr = null;

		dieOffsets = new long[0];
		parentIndexes = new int[0];
		siblingIndexes = new int[0];
		indexHasRef.clear();
		aggsByOffset.clear();
		diesByOffset.clear();
		typeReferers.clear();
		compUnitDieIndex.clear();

		locationListTable.clear();
		rangeListTable.clear();
		stringsOffsetTable.clear();
		addressListTable.clear();

		if (functionFixups != null) {
			for (DWARFFunctionFixup funcFixup : functionFixups) {
				if (funcFixup instanceof Closeable c) {
					FSUtilities.uncheckedClose(c, null);
				}
			}
			functionFixups.clear();
			functionFixups = null;
		}
	}
Reads and indexes available DWARF information.

@param monitor {@link TaskMonitor}
@throws IOException if error reading data
@throws DWARFException if bad or invalid DWARF information
@throws CancelledException if cancelled
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFProgram.java