diff options
author | Rahul Kumar <rahku@microsoft.com> | 2017-04-13 07:20:52 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-13 07:20:52 -0700 |
commit | 58a5e48d5fc016aceffedba7ceda0c4855ab79ca (patch) | |
tree | a8366313ddbbfb0bbb9637b0773c92c52877db85 /src | |
parent | e5faef44cac6e86b12b3b586742183293bdd34a7 (diff) | |
parent | e9f4b4d2dcbe0e3bfce1b5bf7f00ff46fcfe3460 (diff) | |
download | coreclr-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.cpp | 7 |
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*))); |