Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

[x86/Linux] Correctly unwind esp frames#10685

Merged
janvorli merged 1 commit into
dotnet:masterfrom
parjong:fix/x86_esp_unwinder
Apr 4, 2017
Merged

[x86/Linux] Correctly unwind esp frames#10685
janvorli merged 1 commit into
dotnet:masterfrom
parjong:fix/x86_esp_unwinder

Conversation

@parjong
Copy link
Copy Markdown

@parjong parjong commented Apr 4, 2017

UnwindEspFrame already considers pushed argument size when unwinding esp frame, and thus SP should be current SP (not SP before argument pushes) when invoking UnwindEspFrame.

Unfortunately, OOPStackUnwinderX86::VirtualUnwind provides SP before argument pushes, which results in incorrect unwinding inside baseservices.threading.monitor.enter.monitorenter.

This commit revises x86/Linux unwider to correctly unwind esp frames.

@parjong
Copy link
Copy Markdown
Author

parjong commented Apr 4, 2017

@dotnet-bot test OSX10.12 x64 Checked Build and Test please

Copy link
Copy Markdown
Member

@janvorli janvorli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@janvorli janvorli merged commit 53c8812 into dotnet:master Apr 4, 2017
@parjong parjong deleted the fix/x86_esp_unwinder branch April 4, 2017 08:52
@karelz karelz modified the milestone: 2.0.0 Aug 28, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants