From: Koichi Sasada Date: 2012-03-11T16:38:08+09:00 Subject: [ruby-core:43204] [ruby-trunk - Bug #5527][Assigned] set_trace_func binding incorrect Issue #5527 has been updated by Koichi Sasada. Category set to core Status changed from Open to Assigned Assignee set to Koichi Sasada Target version set to 2.0.0 Maybe it is implicit incompatibility between 1.8 and 1.9. No one can find out about it. What should we do on 2.0? ---------------------------------------- Bug #5527: set_trace_func binding incorrect https://bugs.ruby-lang.org/issues/5527 Author: Thomas Sawyer Status: Assigned Priority: Normal Assignee: Koichi Sasada Category: core Target version: 2.0.0 ruby -v: ruby 1.9.3dev (2011-09-23 revision 33323) [x86_64-linux] set_trace_func seems to be broken. I traced the issue to the binding (`b` below). $ cat t.rb fn = lambda do |e, f, l, m, b, k| p Kernel.eval('self', b) end set_trace_func(fn) " a ".strip $ rbenv shell 1.8.7-p352 $ ruby t.rb main " a " " a " $ rbenv shell 1.9.3-rc1 $ ruby t.rb main main main main It would seem the binding has somehow become the binding-of-caller, rather than receiver. -- http://bugs.ruby-lang.org/