From ef843928dded8dc9353b980899ed697258618b06 Mon Sep 17 00:00:00 2001 From: Igor Kulaychuk Date: Thu, 5 Apr 2018 22:02:48 +0300 Subject: 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(-) (limited to 'src') diff --git a/src/debug/di/rspriv.h b/src/debug/di/rspriv.h index 5077f31144..5d5432f558 100644 --- a/src/debug/di/rspriv.h +++ b/src/debug/di/rspriv.h @@ -7127,10 +7127,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 fae679a55f..f2ad2033cd 100644 --- a/src/debug/di/rsthread.cpp +++ b/src/debug/di/rsthread.cpp @@ -5662,11 +5662,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 @@ -6136,7 +6136,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(pPotentialParentFrame); if (pFrameToCheck->IsFunclet()) { @@ -6150,7 +6150,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); @@ -7239,14 +7239,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 } //--------------------------------------------------------------------------------------- @@ -7259,11 +7259,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 } //--------------------------------------------------------------------------------------- @@ -7276,15 +7276,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. @@ -7297,7 +7297,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. @@ -8325,7 +8325,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) && -- cgit v1.2.3