diff options
author | kvochko <a.kvochko@samsung.com> | 2016-06-23 20:23:20 +0400 |
---|---|---|
committer | Jan Vorlicek <janvorli@microsoft.com> | 2016-06-23 18:23:20 +0200 |
commit | 50dd30e88897c8ee213fa76fb55624eead12f382 (patch) | |
tree | a5c8b507aebab2dda83f7bf4c472d659e1be1420 /src/vm/arm64 | |
parent | 26d4a8c05f6502226c13a3fb257c9b7cf2fea2e8 (diff) | |
download | coreclr-50dd30e88897c8ee213fa76fb55624eead12f382.tar.gz coreclr-50dd30e88897c8ee213fa76fb55624eead12f382.tar.bz2 coreclr-50dd30e88897c8ee213fa76fb55624eead12f382.zip |
Enable out-of-proc unwinding on ARM (#5946)
Fix #5855
Diffstat (limited to 'src/vm/arm64')
-rw-r--r-- | src/vm/arm64/stubs.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/vm/arm64/stubs.cpp b/src/vm/arm64/stubs.cpp index a3512a83ec..bb2a6cf256 100644 --- a/src/vm/arm64/stubs.cpp +++ b/src/vm/arm64/stubs.cpp @@ -322,10 +322,18 @@ void LazyMachState::unwindLazyState(LazyMachState* baseState, #ifndef FEATURE_PAL pvControlPc = Thread::VirtualUnwindCallFrame(&context, &nonVolContextPtrs); -#else - PAL_VirtualUnwind(&context, &nonVolContextPtrs); +#else // !FEATURE_PAL +#ifdef DACCESS_COMPILE + HRESULT hr = DacVirtualUnwind(threadId, &context, &nonVolContextPtrs); + if (FAILED(hr)) + { + DacError(hr); + } +#else // DACCESS_COMPILE + PAL_VirtualUnwind(&context, &nonVolContextPtrs); +#endif // DACCESS_COMPILE pvControlPc = GetIP(&context); -#endif +#endif // !FEATURE_PAL if (funCallDepth > 0) { |