mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
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>) |
||
|---|---|---|
| .. | ||
| arith_seq | ||
| array | ||
| bignum | ||
| bug_reporter | ||
| class | ||
| debug | ||
| exception | ||
| file | ||
| float | ||
| funcall | ||
| gvl | ||
| hash | ||
| integer | ||
| iseq_load | ||
| iter | ||
| load | ||
| marshal | ||
| method | ||
| num2int | ||
| path_to_class | ||
| popen_deadlock | ||
| postponed_job | ||
| proc | ||
| rational | ||
| st | ||
| string | ||
| struct | ||
| symbol | ||
| thread | ||
| thread_fd | ||
| time | ||
| tracepoint | ||
| typeddata | ||
| vm | ||
| wait | ||
| win32 | ||
| test_abi.rb | ||
| test_bug-3571.rb | ||
| test_bug-5832.rb | ||
| test_bug-14834.rb | ||
| test_enumerator_kw.rb | ||
| test_notimplement.rb | ||
| test_printf.rb | ||
| test_random.rb | ||
| test_recursion.rb | ||
| test_scan_args.rb | ||