Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backtrace broken in case exception is triggered in tail call #559

Open
rasky opened this issue May 27, 2024 · 0 comments
Open

Backtrace broken in case exception is triggered in tail call #559

rasky opened this issue May 27, 2024 · 0 comments

Comments

@rasky
Copy link
Collaborator

rasky commented May 27, 2024

80003570 <xflow>:
80003570:       27bdffe8        addiu   sp,sp,-24
80003574:       ffa50008        sd      a1,8(sp)
80003578:       10800006        beqz    a0,80003594 <xflow+0x24>
8000357c:       ffa50010        sd      a1,16(sp)
80003580:       dfa30008        ld      v1,8(sp)
80003584:       2402ffff        li      v0,-1
80003588:       000217fc        dsll32  v0,v0,0x1f
8000358c:       00621026        xor     v0,v1,v0
80003590:       ffa20010        sd      v0,16(sp)
80003594:       d7a00010        ldc1    $f0,16(sp)
80003598:       24050022        li      a1,34
8000359c:       f7a00000        sdc1    $f0,0(sp)
800035a0:       d7ac0000        ldc1    $f12,0(sp)
800035a4:       d7a00008        ldc1    $f0,8(sp)
800035a8:       27bd0018        addiu   sp,sp,24
800035ac:       08000d50        j       80003540 <with_errno>
800035b0:       462c0302        mul.d   $f12,$f0,$f12                  <--------------
800035b4:       00000000        nop

Backtrace is broken if an exception is triggered in the specified instruction, because the stack frame was already popped but the tracing engine doesn't know it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant