summaryrefslogtreecommitdiff
path: root/packaging/0006-Fix-x86-Linux-ICorDebug-frames-API.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/0006-Fix-x86-Linux-ICorDebug-frames-API.patch')
-rw-r--r--packaging/0006-Fix-x86-Linux-ICorDebug-frames-API.patch136
1 files changed, 136 insertions, 0 deletions
diff --git a/packaging/0006-Fix-x86-Linux-ICorDebug-frames-API.patch b/packaging/0006-Fix-x86-Linux-ICorDebug-frames-API.patch
new file mode 100644
index 0000000000..64e63a6a8b
--- /dev/null
+++ b/packaging/0006-Fix-x86-Linux-ICorDebug-frames-API.patch
@@ -0,0 +1,136 @@
+From 89471c935995146d2079bd830dd85839caad660a Mon Sep 17 00:00:00 2001
+From: Igor Kulaychuk <i.kulaychuk@samsung.com>
+Date: Thu, 5 Apr 2018 22:02:48 +0300
+Subject: [PATCH 6/7] Fix x86/Linux ICorDebug frames API
+
+---
+ src/debug/di/rspriv.h | 4 ++--
+ src/debug/di/rsthread.cpp | 30 +++++++++++++++---------------
+ 2 files changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/src/debug/di/rspriv.h b/src/debug/di/rspriv.h
+index d714517..a28e7d9 100644
+--- a/src/debug/di/rspriv.h
++++ b/src/debug/di/rspriv.h
+@@ -7113,10 +7113,10 @@ public:
+ bool IsFunclet();
+ bool IsFilterFunclet();
+
+-#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM)
++#ifdef WIN64EXCEPTIONS
+ // return the offset of the parent method frame at which an exception occurs
+ SIZE_T GetParentIP();
+-#endif // DBG_TARGET_WIN64 || DBG_TARGET_ARM
++#endif // WIN64EXCEPTIONS
+
+ TADDR GetAmbientESP() { return m_taAmbientESP; }
+ TADDR GetReturnRegisterValue();
+diff --git a/src/debug/di/rsthread.cpp b/src/debug/di/rsthread.cpp
+index aa85de8..f027e11 100644
+--- a/src/debug/di/rsthread.cpp
++++ b/src/debug/di/rsthread.cpp
+@@ -5867,11 +5867,11 @@ const DT_CONTEXT * CordbRuntimeUnwindableFrame::GetContext() const
+ // default constructor to make the compiler happy
+ CordbMiscFrame::CordbMiscFrame()
+ {
+-#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM)
++#ifdef WIN64EXCEPTIONS
+ this->parentIP = 0;
+ this->fpParentOrSelf = LEAF_MOST_FRAME;
+ this->fIsFilterFunclet = false;
+-#endif // _WIN64
++#endif // WIN64EXCEPTIONS
+ }
+
+ // the real constructor which stores the funclet-related information in the CordbMiscFrame
+@@ -6341,7 +6341,7 @@ HRESULT CordbNativeFrame::IsMatchingParentFrame(ICorDebugNativeFrame2 * pPotenti
+ ThrowHR(CORDBG_E_NOT_CHILD_FRAME);
+ }
+
+-#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM)
++#ifdef WIN64EXCEPTIONS
+ CordbNativeFrame * pFrameToCheck = static_cast<CordbNativeFrame *>(pPotentialParentFrame);
+ if (pFrameToCheck->IsFunclet())
+ {
+@@ -6355,7 +6355,7 @@ HRESULT CordbNativeFrame::IsMatchingParentFrame(ICorDebugNativeFrame2 * pPotenti
+ IDacDbiInterface * pDAC = GetProcess()->GetDAC();
+ *pIsParent = pDAC->IsMatchingParentFrame(fpToCheck, fpParent);
+ }
+-#endif // DBG_TARGET_WIN64 || DBG_TARGET_ARM
++#endif // WIN64EXCEPTIONS
+ }
+ EX_CATCH_HRESULT(hr);
+
+@@ -7444,14 +7444,14 @@ bool CordbNativeFrame::IsLeafFrame() const
+
+ SIZE_T CordbNativeFrame::GetInspectionIP()
+ {
+-#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM)
++#ifdef WIN64EXCEPTIONS
+ // On 64-bit, if this is a funclet, then return the offset of the parent method frame at which
+ // the exception occurs. Otherwise just return the normal offset.
+ return (IsFunclet() ? GetParentIP() : m_ip);
+ #else
+ // Always return the normal offset on all other platforms.
+ return m_ip;
+-#endif // DBG_TARGET_WIN64 || DBG_TARGET_ARM
++#endif // WIN64EXCEPTIONS
+ }
+
+ //---------------------------------------------------------------------------------------
+@@ -7464,11 +7464,11 @@ SIZE_T CordbNativeFrame::GetInspectionIP()
+
+ bool CordbNativeFrame::IsFunclet()
+ {
+-#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM)
++#ifdef WIN64EXCEPTIONS
+ return (m_misc.parentIP != NULL);
+-#else // !DBG_TARGET_WIN64 && !DBG_TARGET_ARM
++#else
+ return false;
+-#endif // DBG_TARGET_WIN64 || DBG_TARGET_ARM
++#endif // WIN64EXCEPTIONS
+ }
+
+ //---------------------------------------------------------------------------------------
+@@ -7481,15 +7481,15 @@ bool CordbNativeFrame::IsFunclet()
+
+ bool CordbNativeFrame::IsFilterFunclet()
+ {
+-#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM)
++#ifdef WIN64EXCEPTIONS
+ return (IsFunclet() && m_misc.fIsFilterFunclet);
+-#else // !DBG_TARGET_WIN64 && !DBG_TARGET_ARM
++#else
+ return false;
+-#endif // DBG_TARGET_WIN64
++#endif // WIN64EXCEPTIONS
+ }
+
+
+-#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM)
++#ifdef WIN64EXCEPTIONS
+ //---------------------------------------------------------------------------------------
+ //
+ // Return the offset of the parent method frame at which the exception occurs.
+@@ -7502,7 +7502,7 @@ SIZE_T CordbNativeFrame::GetParentIP()
+ {
+ return m_misc.parentIP;
+ }
+-#endif // DBG_TARGET_WIN64 || DBG_TARGET_ARM
++#endif // WIN64EXCEPTIONS
+
+ // Accessor for the shim private hook code:CordbThread::ConvertFrameForILMethodWithoutMetadata.
+ // Refer to that function for comments on the return value, the argument, etc.
+@@ -8530,7 +8530,7 @@ HRESULT CordbJITILFrame::GetNativeVariable(CordbType *type,
+
+ HRESULT hr = S_OK;
+
+-#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM)
++#ifdef WIN64EXCEPTIONS
+ if (m_nativeFrame->IsFunclet())
+ {
+ if ( (pNativeVarInfo->loc.vlType != ICorDebugInfo::VLT_STK) &&
+--
+2.7.4
+