summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRahul Kumar <rahku@microsoft.com>2017-04-13 07:20:52 -0700
committerGitHub <noreply@github.com>2017-04-13 07:20:52 -0700
commit58a5e48d5fc016aceffedba7ceda0c4855ab79ca (patch)
treea8366313ddbbfb0bbb9637b0773c92c52877db85 /src
parente5faef44cac6e86b12b3b586742183293bdd34a7 (diff)
parente9f4b4d2dcbe0e3bfce1b5bf7f00ff46fcfe3460 (diff)
downloadcoreclr-58a5e48d5fc016aceffedba7ceda0c4855ab79ca.tar.gz
coreclr-58a5e48d5fc016aceffedba7ceda0c4855ab79ca.tar.bz2
coreclr-58a5e48d5fc016aceffedba7ceda0c4855ab79ca.zip
Merge pull request #10875 from rahku/fix_x86_gcstress
modify lastAvAddress when adjusting context for Stub
Diffstat (limited to 'src')
-rw-r--r--src/vm/i386/excepx86.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/vm/i386/excepx86.cpp b/src/vm/i386/excepx86.cpp
index 2c863b2ec3..9680e8745d 100644
--- a/src/vm/i386/excepx86.cpp
+++ b/src/vm/i386/excepx86.cpp
@@ -3703,6 +3703,13 @@ AdjustContextForVirtualStub(
pExceptionRecord->ExceptionAddress = (PVOID)callsite;
SetIP(pContext, callsite);
+#ifdef HAVE_GCCOVER
+ // Modify LastAVAddress saved in thread to distinguish between fake & real AV
+ // See comments in IsGcMarker in file excep.cpp for more details
+ pThread->SetLastAVAddress((LPVOID)GetIP(pContext));
+#endif
+
+
// put ESP back to what it was before the call.
SetSP(pContext, dac_cast<PCODE>(dac_cast<PTR_BYTE>(GetSP(pContext)) + sizeof(void*)));