Issue #9321 has been updated by drkaes (Stefan Kaes).


Here's the new patch. I have moved the hook to rb_frame_pop().

The new patch makes sure that the method names sent along with call and return events are identical.

But I'm not sure whether the current ruby behavior in the presence of aliased methods is really the desired behavior.

Looking forward to feedback on this topic.
----------------------------------------
Bug #9321: rb_mod_const_missing does not generate a c-return event
https://bugs.ruby-lang.org/issues/9321#change-43993

Author: drkaes (Stefan Kaes)
Status: Open
Priority: Normal
Assignee: 
Category: core
Target version: 
ruby -v: ruby 2.1.0p1 (2013-12-26 revision 44431) [x86_64-darwin12.0]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN


We have had an issue reported for ruby-prof where execution times were attributed incorrectly in the call graph.

It turned out that the problem is caused by a missing c-return event for Module#const_missing.

ruby-prof simulates the ruby call stack by subscribing to line, call, c-call, return and c-return events.

Obviously, the missing return throws ruby-prof off the track.



-- 
http://bugs.ruby-lang.org/