Issue #9321 has been updated by Yui NARUSE.

Status changed from Open to Closed
Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN to 2.0.0: REQUIRED, 2.1: REQUIRED

ささださん曰く、
> const_missing が呼ばれると、c_call は飛ばれるのに c_return が呼ばれない、ので、デバッガ作るときに困るので、
> c_return 呼ばれるようにした。
> これに依存した挙動は無いんじゃ無いかと思うのだが
とのこと。
具体的に結果がどう変わるかは
https://bugs.ruby-lang.org/issues/9321#note-20


----------------------------------------
Bug #9321: rb_mod_const_missing does not generate a c-return event
https://bugs.ruby-lang.org/issues/9321#change-46027

* Author: Stefan Kaes
* Status: Closed
* Priority: Normal
* Assignee: 
* Category: core
* Target version: 
* ruby -v: ruby 2.1.0p1 (2013-12-26 revision 44431) [x86_64-darwin12.0]
* Backport: 2.0.0: REQUIRED, 2.1: REQUIRED
----------------------------------------
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.


---Files--------------------------------
rb_mod_const_missing.patch (643 Bytes)
rb_mod_const_missing_with_tests.patch (1.48 KB)
rb_mod_const_missing_with_tests_redefined.patch (3.01 KB)


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