From c9d9ca42be9d7aee3aa148bdecf7b2c1ae2d87c3 Mon Sep 17 00:00:00 2001 From: Jonghyun Park Date: Thu, 6 Jul 2017 15:05:34 +0900 Subject: [PATCH] [x86/Linux] Enable thread-abort reraise loop prevention (dotnet/coreclr#12646) Commit migrated from https://github.com/dotnet/coreclr/commit/e5557aea38564be9c2e1630ae7b075c3b76837b3 --- src/coreclr/src/vm/exceptionhandling.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/src/vm/exceptionhandling.cpp b/src/coreclr/src/vm/exceptionhandling.cpp index dd95bad..c6d42ed 100644 --- a/src/coreclr/src/vm/exceptionhandling.cpp +++ b/src/coreclr/src/vm/exceptionhandling.cpp @@ -1490,7 +1490,7 @@ void ExceptionTracker::InitializeCrawlFrame(CrawlFrame* pcfThisFrame, Thread* pT #endif // ESTABLISHER_FRAME_ADDRESS_IS_CALLER_SP } -#if defined(_TARGET_ARM_) || defined(_TARGET_ARM64_) +#ifdef ADJUST_PC_UNWOUND_TO_CALL // Further below, we will adjust the ControlPC based upon whether we are at a callsite or not. // We need to do this for "RegDisplay.ControlPC" field as well so that when data structures like // EECodeInfo initialize themselves using this field, they will have the correct absolute value @@ -1509,12 +1509,12 @@ void ExceptionTracker::InitializeCrawlFrame(CrawlFrame* pcfThisFrame, Thread* pT fAdjustRegdisplayControlPC = true; } +#endif // ADJUST_PC_UNWOUND_TO_CALL #if defined(_TARGET_ARM_) // Remove the Thumb bit ControlPCForEHSearch = ThumbCodeToDataPointer(ControlPCForEHSearch); #endif -#endif // _TARGET_ARM_ || _TARGET_ARM64_ #ifdef ADJUST_PC_UNWOUND_TO_CALL // If the OS indicated that the IP is a callsite, then adjust the ControlPC by decrementing it -- 2.7.4