Forum: Ruby-core [Closed] [TracePoint API] return event missing when raising exception

308cbef6e86dfc49cce3b2d4cf42aedc?d=identicon&s=25 unknown (Guest)
on 2014-04-30 11:15
(Received via mailing list)
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/ma...
* 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/ma...),
which is where I first found the strange behaviour.

Thanks a lot in advance!

---Files--------------------------------
tracepoint_missing_return_bug.rb (1.37 KB)
This topic is locked and can not be replied to.