private void queryCallgraph(DescriptionManager manage) throws LSHException, SQLException {
		if (!info.trackcallgraph) {
			throw new LSHException("Database does not track callgraph");
		}
		TreeMap<RowKey, FunctionDescription> funcmap = new TreeMap<>();
		manage.generateFunctionIdMap(funcmap);
		List<FunctionDescription> funclist = new ArrayList<>();
		for (FunctionDescription element : funcmap.values()) { // Build a static copy of the list of functions
			funclist.add(element);
		}
		for (FunctionDescription element : funclist) {
			fillinChildren(element, manage, funcmap);
		}
	}
For every function currently in the manager, fill in its call graph information
@param manage the executable descriptor
@throws LSHException if the database does not track call graph information
@throws SQLException if there is a problem querying for function information
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/AbstractSQLFunctionDatabase.java