docs: def StartGdb(self):
      """Starts gdb and attempts to auto-load symbol file (unless turned off).
  
      Raises:
        GdbProcessError: if gdb is already running
      """
      if self.attached:
        raise GdbProcessError('Gdb is already running.')
      self._gdb = GdbProxy(arch=self.arch)
      self._gdb.Attach(self.position)
  
      if self.auto_symfile_loading:
        try:
          self.LoadSymbolFile()
        except (ProxyError, TimeoutError) as err:
          self._gdb = GdbProxy(arch=self.arch)
          self._gdb.Attach(self.position)
          if not self.gdb.IsSymbolFileSane(self.position):
            logging.warning('Failed to automatically load a sane symbol file, '
                            'most functionality will be unavailable until symbol'
                            'file is provided.')
            logging.debug(err.message)