diff options
Diffstat (limited to 'packaging/0006-Fix-x86-Linux-ICorDebug-frames-API.patch')
-rw-r--r-- | packaging/0006-Fix-x86-Linux-ICorDebug-frames-API.patch | 136 |
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 + |