[x86/Linux] Implement libunwind-based unwindLazyStack #8686

Merged
merged 3 commits into from Dec 20, 2016

Projects

None yet

4 participants

@parjong
Contributor
parjong commented Dec 20, 2016

This commit implements libunwind-based unwindLazyStack for x86/Linux
in order to fix #8625.

@parjong parjong [x86/Linux] Implement libunwind-based unwindLazyStack
This commit implements libunwind-based unwindLazyStack for x86/Linux
in order to fix #8625.
6d556a6
@parjong
Contributor
parjong commented Dec 20, 2016
@parjong
Contributor
parjong commented Dec 20, 2016

@janvorli @jkotas Please take a look.

src/vm/i386/gmsx86.cpp
+#else // !USE_EXTERNAL_UNWINDER
+
+#ifndef FEATURE_PAL
+#error "libunwind-based unwinder is supported only for Linux"
@jkotas
jkotas Dec 20, 2016 edited Member

I do not think this #error is useful. It would remove it.

@parjong
parjong Dec 20, 2016 Contributor

Okay, I'll remove it.

src/vm/i386/gmsx86.cpp
+
+ do
+ {
+ BOOL success = PAL_VirtualUnwind(&ctx, &nonVolRegPtrs);
@jkotas
jkotas Dec 20, 2016 Member

Do you also need the Dac codepath like in the amd64 unwinder?

@parjong
parjong Dec 20, 2016 Contributor

DacVirtualUnwind is available only when WIN64EXCEPTIONS is defined, but I'm now sure whether DacVirtualUnwind depends on exception ABI (or not). Could you let me know some details?

@jkotas
Member
jkotas commented Dec 20, 2016

LGTM otherwise

parjong added some commits Dec 20, 2016
@parjong parjong Remove #error
5c66cf3
@parjong parjong Add Dac code path
5ff09bd
@jkotas
jkotas approved these changes Dec 20, 2016 View changes
@janvorli

LGTM, thank you!

@janvorli janvorli merged commit 6d50745 into dotnet:master Dec 20, 2016

13 checks passed

CentOS7.1 x64 Debug Build and Test Build finished.
Details
FreeBSD x64 Checked Build Build finished.
Details
Linux ARM Emulator Cross Debug Build Build finished.
Details
Linux ARM Emulator Cross Release Build Build finished.
Details
OSX x64 Checked Build and Test Build finished.
Details
Ubuntu x64 Checked Build and Test Build finished.
Details
Ubuntu x64 Formatting Build finished.
Details
Windows_NT arm Cross Debug Build Build finished.
Details
Windows_NT arm Cross Release Build Build finished.
Details
Windows_NT x64 Debug Build and Test Build finished.
Details
Windows_NT x64 Formatting Build finished.
Details
Windows_NT x64 Release Priority 1 Build and Test Build finished.
Details
Windows_NT x86 Checked Build and Test Build finished.
Details
@parjong parjong deleted the parjong:fix/issue_8625 branch Dec 20, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment