From: ko1@... Date: 2014-03-31T09:31:01+00:00 Subject: [ruby-core:61778] [ruby-trunk - Bug #9321] rb_mod_const_missing does not generate a c-return event Issue #9321 has been updated by Koichi Sasada. I check with test/unit (modified as follow) and I got no error. Do I miss anything? ```ruby require 'test/unit' class TestTracePoint < Test::Unit::TestCase def test_method_missing events = [] assert !respond_to?(:missing_method_59398) TracePoint.new(:c_call, :c_return, :call, :return) { |tp| events << [tp.event, tp.method_id] if tp.method_id == :method_missing }.enable { missing_method_59398 rescue nil } assert_equal([[:c_call, :method_missing], [:c_return, :method_missing]], events) end end ``` And I got ``` 1 tests, 2 assertions, 0 failures, 0 errors, 0 skips ruby -v: ruby 2.2.0dev (2014-03-31 trunk 45486) [x86_64-linux] ``` Thanks, Koichi ---------------------------------------- Bug #9321: rb_mod_const_missing does not generate a c-return event https://bugs.ruby-lang.org/issues/9321#change-46018 * Author: 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. ---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/