docs: def Call(self, position, function_call):
      """Perform a function call in the inferior.
  
      WARNING: Since Gdb's concept of threads can't be directly identified with
      python threads, the function call will be made from what has to be assumed
      is an arbitrary thread. This *will* interrupt the inferior. Continuing it
      after the call is the responsibility of the caller.
  
      Args:
        position: the context of the inferior to call the function from.
        function_call: A string corresponding to a function call. Format:
          'foo(0,0)'
      Returns:
        Thre return value of the called function.
      """
      self.EnsureGdbPosition(position[0], None, None)
      if not gdb.selected_thread().is_stopped():
        self.Interrupt(position)
      result_value = gdb.parse_and_eval(function_call)
      return self._UnpackGdbVal(result_value)