diff options
author | John Hawthorn <john@hawthorn.email> | 2023-04-18 07:09:16 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-18 10:09:16 -0400 |
commit | 2dff1d4fdabd0fafeeac675baaaf7b06bb3150f9 (patch) | |
tree | 222beb26cb8855103700fe880ccf32e518f3f89e /yjit/src/stats.rs | |
parent | d8a6db7292e8c92540f3dd2c939508ca1dd8cc41 (diff) | |
download | ruby-2dff1d4fdabd0fafeeac675baaaf7b06bb3150f9.tar.gz |
YJIT: Fix raw sample stack lengths in exit traces (#7728)
yjit-trace-exits appends a synthetic sample for the instruction being
exited, but we didn't increment the size of the stack. Fixing this count
correctly lets us successfully generate a flamegraph from the exits.
I also replaced the line number for instructions with 0, as I don't
think the previous value had meaning.
Co-authored-by: Adam Hess <HParker@github.com>
Diffstat (limited to 'yjit/src/stats.rs')
-rw-r--r-- | yjit/src/stats.rs | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/yjit/src/stats.rs b/yjit/src/stats.rs index cc7f71b9bc..bf90b233f7 100644 --- a/yjit/src/stats.rs +++ b/yjit/src/stats.rs @@ -724,10 +724,8 @@ pub extern "C" fn rb_yjit_record_exit_stack(exit_pc: *const VALUE) // Push the insn value into the yjit_raw_samples Vec. yjit_raw_samples.push(VALUE(insn as usize)); - // Push the current line onto the yjit_line_samples Vec. This - // points to the line in insns.def. - let line = yjit_line_samples.len() - 1; - yjit_line_samples.push(line as i32); + // We don't know the line + yjit_line_samples.push(0); // Push number of times seen onto the stack, which is 1 // because it's the first time we've seen it. |