code: def _RegisterDebuggee(self, service):
      
      try:
        request = {'debuggee': self._GetDebuggee()}
  
        try:
          response = service.debuggees().register(body=request).execute()
  
          # self._project_number will refer to the project id on initialization if
          # the project number is not available. The project field in the debuggee
          # will always refer to the project number. Update so the server will not
          # have to do id->number translations in the future.
          project_number = response['debuggee'].get('project')
          self._project_number = project_number or self._project_number
  
          self._debuggee_id = response['debuggee']['id']
          native.LogInfo('Debuggee registered successfully, ID: %s' % (
              self._debuggee_id))
          self.register_backoff.Succeeded()
          return (False, 0)  # Proceed immediately to list active breakpoints.
        except BaseException:
          native.LogInfo('Failed to register debuggee: %s, %s' %
                         (request, traceback.format_exc()))
      except BaseException:
        native.LogWarning('Debuggee information not available: ' +
                          traceback.format_exc())
  
      return (True, self.register_backoff.Failed())
docs: Single attempt to register the debuggee.
  
      If the registration succeeds, sets self._debuggee_id to the registered
      debuggee ID.
  
      Args:
        service: client to use for API calls
  
      Returns:
        (registration_required, delay) tuple