Issue #6981 has been updated by ko1 (Koichi Sasada). Target version changed from 2.0.0 to next minor time up. ---------------------------------------- Bug #6981: set_trace_func passes strange bindng on method call defined by define_method https://bugs.ruby-lang.org/issues/6981#change-33922 Author: ko1 (Koichi Sasada) Status: Open Priority: Normal Assignee: ko1 (Koichi Sasada) Category: core Target version: next minor ruby -v: ruby 2.0.0dev (2012-08-08 trunk 36657) [i386-mswin32_100] set_trace_func passes strange binding on method call ("call") if invoked method was defined by define_method. Correctly speaking, the caller's binding was passed. # example class C define_method(:foo){ p:foo } def bar p:bar end end set_trace_func(lambda{|ev, *args| if ev == 'call' p eval('self', args[3]) end }) C.new.foo #=> main C.new.bar #=> #<C:0x2bbc360> On Ruby 1.8, there is no problem. -- http://bugs.ruby-lang.org/