docs: def __populate_symbols(self):
          """Get a list of the symbols present in the bfd to populate our
          internal list.
  
          """
          if not self._ptr:
              raise BfdException("BFD not initialized")
  
          try:
              symbols = _bfd.get_symbols(self._ptr)
  
              # Temporary dictionary ordered by section index. This is necessary
              # because the symbolic information return the section index it belongs
              # to.
              sections = {}
              for section in self.sections:
                  sections[self.sections[section].index] = self.sections[section]
  
              for symbol in symbols:
                  # Extract each field for further processing.
                  symbol_section_index = symbol[0]
                  symbol_name = symbol[1]
                  symbol_value = symbol[2]
                  symbol_flags = symbol[3]
  
                  # Get the effective address of the current symbol.
                  symbol_flags = tuple(
                      [f for f in SYMBOL_FLAGS_LIST if symbol_flags & f == f] )
  
                  # Create a new symbol instance to hold symbolic information.
                  new_symbol = Symbol(
                      sections.get(symbol_section_index, None),
                      symbol_name,
                      symbol_value,
                      symbol_flags)
  
                  if new_symbol.section is None:
                      continue
                  symbol_address = new_symbol.section.vma + new_symbol.value
                  #if new_symbol.flags in \
                  #    [SymbolFlags.LOCAL , SymbolFlags.GLOBAL , SymbolFlags.EXPORT]:
                  #    symbol_address = new_symbol.section.vma + new_symbol.value
                  #else:
                  #    # TODO: Enhance this!
                  #    # Discard any other symbol information.
                  #    continue
  
                  self._symbols[symbol_address] = new_symbol
  
              del sections
          except BfdSectionException, err:
              raise BfdException("Exception on symbolic ifnormation parsing.")