lib/byebug/context.rb in byebug-1.3.0 vs lib/byebug/context.rb in byebug-1.3.1
- old
+ new
@@ -6,19 +6,30 @@
attr_accessor :handler
end
class Context
- def frame_args(frame_no=0)
- bind = frame_binding(frame_no)
+ def frame_args frame_no = 0
+ bind = frame_binding frame_no
return [] unless eval "__method__", bind
begin
eval "self.method(__method__).parameters.map{|(attr, mid)| mid}", bind
rescue NameError => e
print "(WARNING: retreving args from frame #{frame_no} => " \
"#{e.class} Exception: #{e.message})\n "
return []
end
+ end
+
+ def frame_locals frame_no = 0
+ bind = frame_binding frame_no
+ eval "local_variables.inject({}){|h, v| h[v] = eval(v.to_s); h}", bind
+ end
+
+ def frame_args_info
+ bind = frame_binding frame_no
+ return [] unless eval "__method__", bind
+ eval "self.method(__method__).parameters", bind
end
def handler
Byebug.handler or raise 'No interface loaded'
end