summaryrefslogtreecommitdiff
path: root/src/vm/arm64
diff options
context:
space:
mode:
authorkvochko <a.kvochko@samsung.com>2016-06-23 20:23:20 +0400
committerJan Vorlicek <janvorli@microsoft.com>2016-06-23 18:23:20 +0200
commit50dd30e88897c8ee213fa76fb55624eead12f382 (patch)
treea5c8b507aebab2dda83f7bf4c472d659e1be1420 /src/vm/arm64
parent26d4a8c05f6502226c13a3fb257c9b7cf2fea2e8 (diff)
downloadcoreclr-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.cpp14
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)
{