Bug #5527

set_trace_func binding incorrect

Added by Thomas Sawyer over 2 years ago. Updated over 1 year ago.

[ruby-core:40568]
Status:Assigned
Priority:Normal
Assignee:Koichi Sasada
Category:core
Target version:next minor
ruby -v:ruby 1.9.3dev (2011-09-23 revision 33323) [x86_64-linux] Backport:

Description

settracefunc 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
settracefunc(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.

History

#1 Updated by Koichi Sasada about 2 years ago

  • 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?

#2 Updated by Koichi Sasada over 1 year ago

  • Target version changed from 2.0.0 to next minor

no discussion.

Also available in: Atom PDF