/** For all unresolved symbols, install simple stubs. */ public void installStubs() { if (mainModule instanceof AbstractCOFFModule) { stubLibrary = new Win32StubLibrary(arch); } else if (mainModule instanceof ELFModule) { stubLibrary = new LinuxStubLibrary(arch); } Iterator<UnresolvedSymbol> sIter = unresolvedSymbols.iterator(); while (sIter.hasNext()) { UnresolvedSymbol unresolvedSymbol = sIter.next(); AbsoluteAddress address = stubLibrary.resolveSymbol(unresolvedSymbol.getFromLibrary(), unresolvedSymbol.getName()); if (address != null) { // logger.debug("Installing stack height stub for " + unresolvedSymbol.getName()); unresolvedSymbol.resolve(address); sIter.remove(); } } if (!unresolvedSymbols.isEmpty()) logger.warn("Unresolved symbols remaining: " + unresolvedSymbols); }