summaryrefslogtreecommitdiff
path: root/src/vm/stackwalk.cpp
diff options
context:
space:
mode:
authorRahul Kumar <rahku@microsoft.com>2016-08-08 15:06:30 -0700
committerRahul Kumar <rahku@microsoft.com>2016-08-08 15:06:30 -0700
commit86057250324ea3585383c39392a95471132112a0 (patch)
tree4236adf4ee4859720c78cbf9ac9665f9888822b4 /src/vm/stackwalk.cpp
parentdeb00ad58acf627763b6c0a7833fa789e3bb1cd0 (diff)
downloadcoreclr-86057250324ea3585383c39392a95471132112a0.tar.gz
coreclr-86057250324ea3585383c39392a95471132112a0.tar.bz2
coreclr-86057250324ea3585383c39392a95471132112a0.zip
Port CS#1596330 from netfxdev1 (bug#119959)
Diffstat (limited to 'src/vm/stackwalk.cpp')
-rw-r--r--src/vm/stackwalk.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/vm/stackwalk.cpp b/src/vm/stackwalk.cpp
index cb3c76e651..3b0b4720f7 100644
--- a/src/vm/stackwalk.cpp
+++ b/src/vm/stackwalk.cpp
@@ -2488,6 +2488,12 @@ StackWalkAction StackFrameIterator::NextRaw(void)
bool fInsertCacheEntry = m_crawl.stackWalkCache.Enabled() &&
(m_flags & LIGHTUNWIND) &&
(m_pCachedGSCookie == NULL);
+
+ // Is this a dynamic method. Dynamic methods can be GC collected and so IP to method mapping
+ // is not persistent. Therefore do not cache information for this frame.
+ BOOL isCollectableMethod = ExecutionManager::IsCollectibleMethod(m_crawl.GetMethodToken());
+ if(isCollectableMethod)
+ fInsertCacheEntry = FALSE;
StackwalkCacheUnwindInfo unwindInfo;