@@ -603,42 +603,6 @@ HRESULT STDMETHODCALLTYPE DacDbiInterfaceImpl::EnumerateInternalFrames(VMPTR_Thr
603603 frameData.vmCurrentAppDomainToken .SetHostPtr (pAppDomain);
604604
605605 MethodDesc * pMD = pFrame->GetFunction ();
606- #if defined(FEATURE_COMINTEROP)
607- if (frameData.stubFrame .frameType == STUBFRAME_U2M)
608- {
609- _ASSERTE (pMD == NULL );
610-
611- // U2M transition frame generally don't store the target MD because we know what the target
612- // is by looking at the callee stack frame. However, for reverse COM interop, we can try
613- // to get the MD for the interface.
614- //
615- // Note that some reverse COM interop cases don't have an intermediate interface MD, so
616- // pMD may still be NULL.
617- //
618- // Even if there is an MD on the ComMethodFrame, it could be in a different appdomain than
619- // the ComMethodFrame itself. The only known scenario is a cross-appdomain reverse COM
620- // interop call. We need to check for this case. The end result is that GetFunction() and
621- // GetFunctionToken() on ICDInternalFrame will return NULL.
622-
623- // Minidumps without full memory don't guarantee to capture the CCW since we can do without
624- // it. In this case, pMD will remain NULL.
625- EX_TRY_ALLOW_DATATARGET_MISSING_MEMORY
626- {
627- if (pFrame->GetFrameIdentifier () == FrameIdentifier::ComMethodFrame)
628- {
629- ComMethodFrame * pCOMFrame = dac_cast<PTR_ComMethodFrame>(pFrame);
630- PTR_VOID pUnkStackSlot = pCOMFrame->GetPointerToArguments ();
631- PTR_IUnknown pUnk = dac_cast<PTR_IUnknown>(*dac_cast<PTR_TADDR>(pUnkStackSlot));
632- ComCallWrapper * pCCW = ComCallWrapper::GetWrapperFromIP (pUnk);
633-
634- ComCallMethodDesc * pCMD = NULL ;
635- pCMD = dac_cast<PTR_ComCallMethodDesc>(pCOMFrame->ComMethodFrame ::GetDatum ());
636- pMD = pCMD->GetInterfaceMethodDesc ();
637- }
638- }
639- EX_END_CATCH_ALLOW_DATATARGET_MISSING_MEMORY
640- }
641- #endif // FEATURE_COMINTEROP
642606
643607 Module * pModule = (pMD ? pMD->GetModule () : NULL );
644608 DomainAssembly * pDomainAssembly = (pModule ? pModule->GetDomainAssembly () : NULL );
@@ -902,7 +866,7 @@ void DacDbiInterfaceImpl::InitFrameData(StackFrameIterator * pIter,
902866 pFrameData->v .fVarArgs = pMD->IsVarArg ();
903867
904868 // Check if this is a NoMetadata method or if the method should be hidden.
905- // These methods should not be visible in the debugger both for convenience and
869+ // These methods should not be visible in the debugger both for convenience and
906870 // because they don't have backing metadata. For more information see comments in
907871 // MethodDesc::IsNoMetadata and MethodDesc::IsDiagnosticsHidden.
908872 pFrameData->v .fNoMetadata = pMD->IsNoMetadata () || pMD->IsDiagnosticsHidden ();
0 commit comments