ruby/ext/-test-/debug
Ivo Anjo 649bfbe00d Fix `rb_profile_frames` output includes dummy main thread frame
The `rb_profile_frames` API did not skip the two dummy frames that
each thread has at its beginning. This was unlike `backtrace_each` and
`rb_ec_parcial_backtrace_object`, which do skip them.

This does not seem to be a problem for non-main thread frames,
because both `VM_FRAME_RUBYFRAME_P(cfp)` and
`rb_vm_frame_method_entry(cfp)` are NULL for them.

BUT, on the main thread `VM_FRAME_RUBYFRAME_P(cfp)` was true
and thus the dummy thread was still included in the output of
`rb_profile_frames`.

I've now made `rb_profile_frames` skip this extra frame (like
`backtrace_each` and friends), as well as add a test that asserts
the size and contents of `rb_profile_frames`.

Fixes [Bug #18907] (<https://bugs.ruby-lang.org/issues/18907>)
2022-07-26 10:43:44 +09:00
..
depend [Feature #18249] Update dependencies 2022-02-22 09:55:21 -05:00
extconf.rb auto_ext.rb 2016-05-29 03:08:45 +00:00
init.c debug: trivial fixes 2013-01-29 09:30:37 +00:00
inspector.c Expand tabs [ci skip] 2022-07-21 09:42:04 -07:00
profile_frames.c Fix `rb_profile_frames` output includes dummy main thread frame 2022-07-26 10:43:44 +09:00