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

Missing call stack frames because adjusted_frame_base not applied during PE_UnwindOpCode_SET_FPREG #313

Closed
mistymntncop opened this issue Sep 22, 2024 · 1 comment

Comments

@mistymntncop
Copy link

mistymntncop commented Sep 22, 2024

I encountered this bug when debugging V8. You can reproduce it in V8 by using the arguments "--shell --allow-natives-syntax" and then typing "%SystemBreak();" into the d8 shell.

The callstack contains missing (and incorrect) stack frames.

image

I had a look and it seems the issue is that in the case that adjusted_frame_base == raw_frame_base the frame_base won't be updated properly for the PE_UnwindOpCode_SET_FPREG opcode. An off-by-one.

Removing the check seems to fix it.

        //if(adjusted_frame_base < raw_frame_base)
        {
          frame_base = adjusted_frame_base;
        }

image

@ryanfleury
Copy link
Collaborator

Thanks for looking into this; fixed as of 64e5d60. This will be in 0.9.12.

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

2 participants