From: merch-redmine@... Date: 2021-06-18T18:16:57+00:00 Subject: [ruby-core:104360] [Ruby master Bug#13392] TracePoint return event location is incorrect for methods defined with define_method Issue #13392 has been updated by jeremyevans0 (Jeremy Evans). Subject changed from TracePoint doesn't work correct with monkey patches / aliased methods to TracePoint return event location is incorrect for methods defined with define_method This isn't an issue specific to monkey patches or aliased methods. This is a general issue with the :return event handling of bmethods (methods defined using blocks instead of with `def`). The return event handling occurs after the related VM frame has been popped instead of before, which is why the return event for bmethods shows the caller location instead of the return location in the callee. I've submitted a pull request to fix this: https://github.com/ruby/ruby/pull/4588 ---------------------------------------- Bug #13392: TracePoint return event location is incorrect for methods defined with define_method https://bugs.ruby-lang.org/issues/13392#change-92590 * Author: areman01 (Andr� Kullmann) * Status: Open * Priority: Normal * ruby -v: ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux] * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- **Command** ~~~ ruby ruby tracepoint_bug.rb ~~~ **Output** ~~~ ruby-2.4.1-p111 (x86_64-linux) tracepoint_bug_ext.rb:4 call to_s tracepoint_bug_ext.rb:5 c_call to_s tracepoint_bug_ext.rb:5 c_return to_s racepoint_bug.rb:12 return to_s ~~~ Why the **call event** on *to_s* is in file *tracepoint_bug_ext.rb* and the **return event** in file *tracepoint_bug.rb*? I think it's a bug. In jruby, for example, the call and the return event are both fired in the tracepoint_bug_ext.rb file. ---Files-------------------------------- tracepoint_bug.rb (495 Bytes) tracepoint_bug_ext.rb (126 Bytes) -- https://bugs.ruby-lang.org/ Unsubscribe: