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 Rodrguez
* 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/