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

STACK WIN entries have slightly incorrect lengths #285

Open
Gankra opened this issue Sep 23, 2021 · 0 comments
Open

STACK WIN entries have slightly incorrect lengths #285

Gankra opened this issue Sep 23, 2021 · 0 comments

Comments

@Gankra
Copy link
Contributor

Gankra commented Sep 23, 2021

Ran into this while implementing STACK WIN unwinding in rust-minidump.

Sometimes we get STACK WIN directives where each line has an accurate starting point, but the length just covers the entire function(?), like so:

 addr: 0, len: 10
 addr: 1, len: 9
 addr: 4, len: 6

In this case, the next instruction is the one that really defines the length of the previous one. So we need to fixup the lengths like so:

 addr: 0, len: 1
 addr: 1, len: 2
 addr: 4, len: 6

Now that I know it's a thing and have a workaround it's not a big deal, but presumably this is "wrong" for dump_syms to generate.

I'm still dropping a few more entries with weirder intersecting ranges that this heuristic doesn't work for, but I haven't yet inspected what they are since they haven't caused me trouble. If you run this branch of rust-minidump on e.g. this minidump with --verbose=warn, it will report all the STACK WIN entries it threw out as a result.

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