public SymbolIterator getExternalSymbolByMemoryAddress(Library library, Address extProgAddr) {
		if (extProgAddr == null || !extProgAddr.isLoadedMemoryAddress()) {
			return SymbolIterator.EMPTY_ITERATOR;
		}
		if (library != null) {
			checkValidNamespaceArgument(library);
		}
		lock.acquire();
		try {
			long matchLibraryId = library != null ? library.getID() : -1;
			RecordIterator recordIter = adapter.getExternalSymbolsByMemoryAddress(extProgAddr);
			return new SymbolRecordConstraintIterator(recordIter, rec -> {
				if (matchLibraryId > 0) {
					long parentId = rec.getLongValue(SymbolDatabaseAdapter.SYMBOL_PARENT_ID_COL);
					if (parentId == matchLibraryId) {
						return true;
					}
					Symbol s = getSymbol(parentId);
					Library lib = Library.getContainingLibrary(s);
					return lib != null && lib.getID() == matchLibraryId;
				}
				return true;
			}, true);
		}
		catch (IOException e) {
			program.dbError(e);
			return null; // will not occur
		}
		finally {
			lock.release();
		}
	}
Get all external symbols whose original import name matches the specified extLabel with an
optional constraint on a matching Library.
@param library optional Library constraint (may be null to ignore).
@param extProgAddr external program memory address
@return external symbol iterator
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/symbol/SymbolManager.java