From: ko1@... Date: 2014-04-30T09:08:20+00:00 Subject: [ruby-core:62250] [ruby-trunk - Bug #9759] [Closed] [TracePoint API] return event missing when raising exception Issue #9759 has been updated by Koichi Sasada. Status changed from Open to Closed % Done changed from 0 to 100 Applied in changeset r45758. ---------- * vm.c (invoke_block_from_c): add VM_FRAME_FLAG_BMETHOD to record it is bmethod frame. * vm.c (vm_exec): invoke RUBY_EVENT_RETURN event if rollbacked frame is VM_FRAME_FLAG_BMETHOD. [Bug #9759] * test/ruby/test_settracefunc.rb: add a test for TracePoint/set_trace_func. * vm_core.h: renmae rb_thread_t::passed_me to rb_thread_t::passed_bmethod_me to clarify the usage. * vm_insnhelper.c (vm_call_bmethod_body): use renamed member. ---------------------------------------- Bug #9759: [TracePoint API] return event missing when raising exception https://bugs.ruby-lang.org/issues/9759#change-46403 * Author: David Rodr��guez * Status: Closed * Priority: Normal * Assignee: Koichi Sasada * Category: core * Target version: current: 2.2.0 * ruby -v: https://github.com/thoughtbot/factory_girl/blob/master/lib/factory_girl/strategy_syntax_method_registrar.rb * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- I think I found another bug in the TracePoint API, which seems related to #9321. In this case, the failing event is a return event from a method inside of which the exception was generated. I wrote a failing test case, adapting the code from [factory_girl](https://github.com/thoughtbot/factory_girl/blob/master/lib/factory_girl/strategy_syntax_method_registrar.rb), which is where I first found the strange behaviour. Thanks a lot in advance! ---Files-------------------------------- tracepoint_missing_return_bug.rb (1.37 KB) -- https://bugs.ruby-lang.org/