Merge pull request #8697 from sivarv/lockAddFix
[platform/upstream/coreclr.git] / src / debug / shared / dbgtransportsession.cpp
index 14b509a..95fdf25 100644 (file)
@@ -1140,33 +1140,6 @@ DbgTransportSession::Message * DbgTransportSession::RemoveMessageFromSendQueue(D
 
 #ifndef RIGHT_SIDE_COMPILE
 
-#ifdef FEATURE_PAL
-__attribute__((noinline))
-__attribute__((optnone))
-static void 
-ProbeMemory(__in_ecount(cbBuffer) volatile PBYTE pbBuffer, DWORD cbBuffer, bool fWriteAccess)
-{
-    // Need an throw in this function to fool the C++ runtime into handling the 
-    // possible h/w exception below.
-    if (pbBuffer == NULL)
-    {
-        throw PAL_SEHException();
-    }
-
-    // Simple one byte at a time probing
-    while (cbBuffer > 0)
-    {
-        volatile BYTE read = *pbBuffer;
-        if (fWriteAccess)
-        {
-            *pbBuffer = read;
-        }
-        ++pbBuffer;
-        --cbBuffer;
-    }
-}
-#endif // FEATURE_PAL
-
 // Check read and optionally write memory access to the specified range of bytes. Used to check
 // ReadProcessMemory and WriteProcessMemory requests.
 HRESULT DbgTransportSession::CheckBufferAccess(__in_ecount(cbBuffer) PBYTE pbBuffer, DWORD cbBuffer, bool fWriteAccess)
@@ -1220,14 +1193,7 @@ HRESULT DbgTransportSession::CheckBufferAccess(__in_ecount(cbBuffer) PBYTE pbBuf
     }
     while (cbBuffer > 0);
 #else
-    try
-    {
-        // Need to explicit h/w exception holder so to catch them in ProbeMemory
-        CatchHardwareExceptionHolder __catchHardwareException;
-
-        ProbeMemory(pbBuffer, cbBuffer, fWriteAccess);
-    }
-    catch(...)
+    if (!PAL_ProbeMemory(pbBuffer, cbBuffer, fWriteAccess))
     {
         return HRESULT_FROM_WIN32(ERROR_INVALID_ADDRESS);
     }