summaryrefslogtreecommitdiff
path: root/src/vm/stackwalk.cpp
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2017-03-10 21:55:51 -0800
committerJan Kotas <jkotas@microsoft.com>2017-03-10 21:59:07 -0800
commitb9ec18243cf36650f7b6359e24173d336a3ed96e (patch)
treefbc21e551f50ef2f5b329fa88c257f11856473ac /src/vm/stackwalk.cpp
parent7e50e48a24c12e19d0a0f52ac1b3d74e5d1dac77 (diff)
downloadcoreclr-b9ec18243cf36650f7b6359e24173d336a3ed96e.tar.gz
coreclr-b9ec18243cf36650f7b6359e24173d336a3ed96e.tar.bz2
coreclr-b9ec18243cf36650f7b6359e24173d336a3ed96e.zip
Fix incorrect assert condition
Fixes #8683
Diffstat (limited to 'src/vm/stackwalk.cpp')
-rw-r--r--src/vm/stackwalk.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/vm/stackwalk.cpp b/src/vm/stackwalk.cpp
index d6b116bf8f..dacc85f1a0 100644
--- a/src/vm/stackwalk.cpp
+++ b/src/vm/stackwalk.cpp
@@ -630,7 +630,10 @@ PCODE Thread::VirtualUnwindCallFrame(T_CONTEXT* pContext,
pFunctionEntryFromOS = RtlLookupFunctionEntry(uControlPc,
ARM_ONLY((DWORD*))(&uImageBaseFromOS),
NULL);
- _ASSERTE( (uImageBase == uImageBaseFromOS) && (pFunctionEntry == pFunctionEntryFromOS) );
+
+ // Note that he address returned from the OS is different from the one we have computed
+ // when unwind info is registered using RtlAddGrowableFunctionTable. Compare RUNTIME_FUNCTION content.
+ _ASSERTE( (uImageBase == uImageBaseFromOS) && (memcmp(pFunctionEntry, pFunctionEntryFromOS, sizeof(RUNTIME_FUNCTION)) == 0) );
#endif // _DEBUG && !FEATURE_PAL
}