'Adds symbols from the GOT and PLT to the symbols dictionary.
Does not overwrite any existing symbols, and prefers PLT symbols.
Synthetic plt.xxx and got.xxx symbols are added for each PLT and
GOT entry, respectively.
Example:bash.
>>> bash = ELF(which(\'bash\'))
>>> bash.symbols.wcscmp == bash.plt.wcscmp
True
>>> bash.symbols.wcscmp == bash.symbols.plt.wcscmp
True
>>> bash.symbols.stdin  == bash.got.stdin
True
>>> bash.symbols.stdin  == bash.symbols.got.stdin
True'

def _populate_synthetic_symbols(self):

    for (symbol, address) in self.plt.items():
        self.symbols.setdefault(symbol, address)
        self.symbols[('plt.' + symbol)] = address
    for (symbol, address) in self.got.items():
        self.symbols.setdefault(symbol, address)
        self.symbols[('got.' + symbol)] = address
