module Byebug::VarFunctions
def var_class_self
def var_class_self obj = bb_eval('self') var_list(obj.class.class_variables, get_binding) end
def var_global
def var_global globals = global_variables.reject do |v| [:$IGNORECASE, :$=, :$KCODE, :$-K, :$binding].include?(v) end var_list(globals) end
def var_instance(where)
def var_instance(where) obj = bb_eval(where) var_list(obj.instance_variables, obj.instance_eval { binding }) end
def var_list(ary, b = get_binding)
def var_list(ary, b = get_binding) ary.sort! ary.each do |v| begin s = bb_eval(v.to_s, b).inspect rescue begin s = bb_eval(v.to_s, b).to_s rescue s = '*Error in evaluation*' end end s = "#{v} = #{s}" s[Setting[:width] - 3..-1] = '...' if s.size > Setting[:width] puts s end end
def var_local
def var_local _self = @state.context.frame_self(@state.frame_pos) locals = @state.context.frame_locals locals.keys.sort.each do |name| puts format(' %s => %p', name, locals[name]) end end