class DEBUGGER__::ThreadClient

def puts_variable_info label, obj, pat

def puts_variable_info label, obj, pat
  return if pat && pat !~ label
  begin
    inspected = DEBUGGER__.safe_inspect(obj)
  rescue Exception => e
    inspected = e.inspect
  end
  mono_info = "#{label} = #{inspected}"
  w = SESSION::width
  if mono_info.length >= w
    maximum_value_width = w - "#{label} = ".length
    valstr = truncate(inspected, width: maximum_value_width)
  else
    valstr = colored_inspect(obj, width: 2 ** 30)
    valstr = inspected if valstr.lines.size > 1
  end
  info = "#{colorize_cyan(label)} = #{valstr}"
  puts info
end