summaryrefslogtreecommitdiff
path: root/src/vm/arm
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/arm
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/arm')
-rw-r--r--src/vm/arm/stubs.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/vm/arm/stubs.cpp b/src/vm/arm/stubs.cpp
index c3064bfdb3..9868cb6448 100644
--- a/src/vm/arm/stubs.cpp
+++ b/src/vm/arm/stubs.cpp
@@ -537,10 +537,17 @@ void LazyMachState::unwindLazyState(LazyMachState* baseState,
#ifndef FEATURE_PAL
pvControlPc = Thread::VirtualUnwindCallFrame(&ctx, &nonVolRegPtrs);
#else // !FEATURE_PAL
+#ifdef DACCESS_COMPILE
+ HRESULT hr = DacVirtualUnwind(threadId, &ctx, &nonVolRegPtrs);
+ if (FAILED(hr))
+ {
+ DacError(hr);
+ }
+#else // DACCESS_COMPILE
PAL_VirtualUnwind(&ctx, &nonVolRegPtrs);
+#endif // DACCESS_COMPILE
pvControlPc = GetIP(&ctx);
#endif // !FEATURE_PAL
-
if (funCallDepth > 0)
{
--funCallDepth;