class DEBUGGER__::ThreadClient

def frame_eval_core src, b, binding_location: false

def frame_eval_core src, b, binding_location: false
  saved_target_frames = @target_frames
  saved_current_frame_index = @current_frame_index
  if b
    file, lineno = b.source_location
    tp_allow_reentry do
      if binding_location
        b.eval(src, file, lineno)
      else
        b.eval(src, "(rdbg)/#{file}")
      end
    end
  else
    frame_self = current_frame.self
    tp_allow_reentry do
      frame_self.instance_eval(src)
    end
  end
ensure
  @target_frames = saved_target_frames
  @current_frame_index = saved_current_frame_index
end