diff --git a/src/coreclr/debug/daccess/dacdbiimplstackwalk.cpp b/src/coreclr/debug/daccess/dacdbiimplstackwalk.cpp index 7e0b3280d3589d..454a5dcf974ece 100644 --- a/src/coreclr/debug/daccess/dacdbiimplstackwalk.cpp +++ b/src/coreclr/debug/daccess/dacdbiimplstackwalk.cpp @@ -567,9 +567,6 @@ HRESULT STDMETHODCALLTYPE DacDbiInterfaceImpl::EnumerateInternalFrames(VMPTR_Thr Frame * pFrame = pThread->GetFrame(); AppDomain * pAppDomain = AppDomain::GetCurrentDomain(); - // This used to be only true for Enter-Managed chains. - // Since we don't have chains anymore, this can always be false. - frameData.quicklyUnwound = false; frameData.eType = DebuggerIPCE_STRData::cStubFrame; while (pFrame != FRAME_TOP) @@ -791,10 +788,6 @@ void DacDbiInterfaceImpl::InitFrameData(StackFrameIterator * pIter, pFrameData->fp = GetFramePointerWorker(pIter); - // This used to be only true for Enter-Managed chains. - // Since we don't have chains anymore, this can always be false. - pFrameData->quicklyUnwound = false; - pFrameData->vmCurrentAppDomainToken.SetHostPtr(AppDomain::GetCurrentDomain()); if (ft == kNativeRuntimeUnwindableStackFrame) diff --git a/src/coreclr/debug/di/rspriv.h b/src/coreclr/debug/di/rspriv.h index d376dea2ba6ebc..d949f7ab1b525b 100644 --- a/src/coreclr/debug/di/rspriv.h +++ b/src/coreclr/debug/di/rspriv.h @@ -6829,7 +6829,6 @@ class CordbNativeFrame : public CordbFrame, public ICorDebugNativeFrame, public SIZE_T ip, DebuggerREGDISPLAY * pDRD, TADDR addrAmbientESP, - bool fQuicklyUnwound, CordbAppDomain * pCurrentAppDomain, CordbMiscFrame * pMisc = NULL, DT_CONTEXT * pContext = NULL); @@ -7009,9 +7008,6 @@ class CordbNativeFrame : public CordbFrame, public ICorDebugNativeFrame, public // the register set DebuggerREGDISPLAY m_rd; - // This field is only true for Enter-Managed chain. It means that the register set is invalid. - bool m_quicklyUnwound; - // each CordbNativeFrame corresponds to exactly one CordbJITILFrame and one CordbNativeCode RSSmartPtr m_JITILFrame; RSSmartPtr m_nativeCode; diff --git a/src/coreclr/debug/di/rsstackwalk.cpp b/src/coreclr/debug/di/rsstackwalk.cpp index 2a7e822d0679d6..e92ada7afe63ce 100644 --- a/src/coreclr/debug/di/rsstackwalk.cpp +++ b/src/coreclr/debug/di/rsstackwalk.cpp @@ -683,7 +683,6 @@ HRESULT CordbStackWalk::GetFrameWorker(ICorDebugFrame ** ppFrame) pJITFuncData->nativeOffset, &(frameData.rd), frameData.v.taAmbientESP, - !!frameData.quicklyUnwound, pCurrentAppDomain, &miscFrame, &(frameData.ctx)); diff --git a/src/coreclr/debug/di/rsthread.cpp b/src/coreclr/debug/di/rsthread.cpp index fe1bab685a1252..83583bc897048f 100644 --- a/src/coreclr/debug/di/rsthread.cpp +++ b/src/coreclr/debug/di/rsthread.cpp @@ -5483,13 +5483,11 @@ CordbNativeFrame::CordbNativeFrame(CordbThread * pThread, SIZE_T ip, DebuggerREGDISPLAY * pDRD, TADDR taAmbientESP, - bool fQuicklyUnwound, CordbAppDomain * pCurrentAppDomain, CordbMiscFrame * pMisc /*= NULL*/, DT_CONTEXT * pContext /*= NULL*/) : CordbFrame(pThread, fp, ip, pCurrentAppDomain), m_rd(*pDRD), - m_quicklyUnwound(fQuicklyUnwound), m_JITILFrame(NULL), m_nativeCode(pNativeCode), // implicit InternalAddRef m_taAmbientESP(taAmbientESP) @@ -5854,7 +5852,7 @@ HRESULT CordbNativeFrame::GetRegisterSet(ICorDebugRegisterSet **ppRegisters) RSInitHolder pRegisterSet(new CordbRegisterSet(&m_rd, m_pThread, IsLeafFrame(), - m_quicklyUnwound)); + false)); pRegisterSet.TransferOwnershipExternal(ppRegisters); } diff --git a/src/coreclr/debug/ee/frameinfo.cpp b/src/coreclr/debug/ee/frameinfo.cpp index a28aac42f045f6..cce4d63fde0991 100644 --- a/src/coreclr/debug/ee/frameinfo.cpp +++ b/src/coreclr/debug/ee/frameinfo.cpp @@ -97,7 +97,6 @@ struct DebuggerFrameData this->fHitExitFrame = false; this->info.eStubFrameType = STUBFRAME_NONE; - this->info.quickUnwind = false; this->info.frame = NULL; this->needParentInfo = false; @@ -653,7 +652,6 @@ void FrameInfo::InitForUMChain(FramePointer fpRoot, REGDISPLAY * pRDSrc) CopyREGDISPLAY(&(this->registers), pRDSrc); this->fp = fpRoot; - this->quickUnwind = false; this->internal = false; this->managed = false; @@ -750,7 +748,6 @@ void FrameInfo::InitFromStubHelper( this->fp = GetSP(pRDSrc); } - this->quickUnwind = false; this->internal = false; this->managed = true; this->relOffset = 0; @@ -846,7 +843,6 @@ void FrameInfo::InitForThreadStart(Thread * pThread, REGDISPLAY * pRDSrc) this->md = NULL; CopyREGDISPLAY(&(this->registers), pRDSrc); this->fp = FramePointer::MakeFramePointer(pThread->GetCachedStackBase()); - this->quickUnwind = false; this->internal = false; this->managed = false; this->relOffset = 0; @@ -889,7 +885,6 @@ void FrameInfo::InitForEnterManagedChain(FramePointer fpRoot) memset((void *)&this->registers, 0, sizeof(this->registers)); this->fp = fpRoot; - this->quickUnwind = true; this->internal = false; this->managed = true; this->relOffset = 0; diff --git a/src/coreclr/debug/ee/frameinfo.h b/src/coreclr/debug/ee/frameinfo.h index 02e16c325fd86b..87e90c90900366 100644 --- a/src/coreclr/debug/ee/frameinfo.h +++ b/src/coreclr/debug/ee/frameinfo.h @@ -54,12 +54,6 @@ struct FrameInfo REGDISPLAY registers; FramePointer fp; - // This field is propagated to the right side to become CordbRegisterSet::m_quicklyUnwind. - // If it is true, then the registers reported in the REGDISPLAY are invalid. It is only set to - // true in InitForEnterManagedChain(). In that case, we are passing a NULL REGDISPLAY anyway. - // This is such a misnomer. - bool quickUnwind; - // Set to true if we are dealing with an internal explicit frame. Currently this is only true // for prestub frames, security frames, funceval frames, and certain debugger-specific frames // (e.g. DebuggerClassInitMarkFrame). diff --git a/src/coreclr/debug/inc/dbgipcevents.h b/src/coreclr/debug/inc/dbgipcevents.h index a9a9bceaaa01d7..d69982c6c77b63 100644 --- a/src/coreclr/debug/inc/dbgipcevents.h +++ b/src/coreclr/debug/inc/dbgipcevents.h @@ -1365,28 +1365,18 @@ struct MSLAYOUT DebuggerIPCE_STRData // @dbgtodo stackwalker/shim- Ideally we should be able to get rid of the DebuggerREGDISPLAY and just use the CONTEXT. DT_CONTEXT ctx; DebuggerREGDISPLAY rd; - bool quicklyUnwound; - VMPTR_AppDomain vmCurrentAppDomainToken; enum EType { cMethodFrame = 0, - cChain, cStubFrame, cRuntimeNativeFrame } eType; union MSLAYOUT { - // Data for a chain - struct MSLAYOUT - { - CorDebugChainReason chainReason; - bool managed; - } u; - // Data for a Method struct MSLAYOUT {