From: "drkaes (Stefan Kaes)" Date: 2013-12-30T21:21:50+09:00 Subject: [ruby-core:59407] [ruby-trunk - Bug #9321] rb_mod_const_missing does not generate a c-return event Issue #9321 has been updated by drkaes (Stefan Kaes). rb_frame_pop is called in only one place, and that's the one which the patch addresses. So yes, we could move the code to rb_frame_pop(), if we change it's signature. I'm not sure, under which circumstances the problem can show it's ugly head. This breaks (without patch): def foo; UNKNOWN_CONSTANT rescue nil; end These don't: def foo; 1/0 rescue nil; end def bar; raise "shoot" rescue nil; end ---------------------------------------- Bug #9321: rb_mod_const_missing does not generate a c-return event https://bugs.ruby-lang.org/issues/9321#change-43970 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/