public static DWARFSourceInfo create(DIEAggregate diea) {
		DIEAggregate currentDIEA = diea;
		String file = null;
		while (currentDIEA != null && (file = currentDIEA.getSourceFile()) == null) {
			currentDIEA = currentDIEA.getParent();
		}
		if (file == null) {
			return null;
		}
		DWARFNumericAttribute declLineAttr = diea.findAttributeInChildren(DW_AT_decl_line,
			DW_TAG_formal_parameter, DWARFNumericAttribute.class); // TODO: what other children might have a line number attribute?
		if (declLineAttr == null) {
			return null;
		}

		int lineNum = (int) declLineAttr.getUnsignedValue();

		return new DWARFSourceInfo(file, lineNum);
	}
Creates a new {@link DWARFSourceInfo} instance from the supplied {@link DIEAggregate}
if the info is present, otherwise returns null;

@param diea {@link DIEAggregate} to query for source info
@return new {@link DWARFSourceInfo} with filename:linenum info, or null if no info present in DIEA.
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFSourceInfo.java