From: "drkaes (Stefan Kaes)" Date: 2014-01-06T16:25:40+09:00 Subject: [ruby-core:59579] [ruby-trunk - Bug #9321] rb_mod_const_missing does not generate a c-return event Issue #9321 has been updated by drkaes (Stefan Kaes). I have extended the patch to also cover method_missing, by changing a single cfp pointer manipulation to a call of rb_frame_pop(). See https://github.com/skaes/rvm-patchsets/blob/master/patches/ruby/2.1.0/head/railsexpress/05-fix-missing-c-return-event.patch#L121 I have tested various other c functions raising exceptions. All of them work fine without the patches. And my position is still that this is a ruby bug, which should be fixed instead of being worked around by all tool implementers. ---------------------------------------- Bug #9321: rb_mod_const_missing does not generate a c-return event https://bugs.ruby-lang.org/issues/9321#change-44113 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/