Skip to content

Commit

Permalink
Hide JIT Helper Frames in DAC stackwalker
Browse files Browse the repository at this point in the history
Partially remove some debugger JitHelper frame hiding as we are now hiding frames at a lower level
  • Loading branch information
tommcdon committed Jan 1, 2020
1 parent 20f7a30 commit d269b62
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 16 deletions.
9 changes: 0 additions & 9 deletions src/coreclr/src/debug/daccess/dacdbiimpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5504,15 +5504,6 @@ IDacDbiInterface::DynamicMethodType DacDbiInterfaceImpl::IsILStubOrLCGMethod(VMP
}
}

bool DacDbiInterfaceImpl::IsJitHelper(VMPTR_MethodDesc vmMethodDesc)
{
DD_ENTER_MAY_THROW;

MethodDesc * pMD = vmMethodDesc.GetDacPtr();

return pMD->IsJitHelper();
}

//---------------------------------------------------------------------------------------
//
// Determine whether the specified thread is at a GC safe place.
Expand Down
2 changes: 0 additions & 2 deletions src/coreclr/src/debug/daccess/dacdbiimpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -901,8 +901,6 @@ class DacDbiInterfaceImpl :
// Check if the given method is an IL stub or an LCD method.
DynamicMethodType IsILStubOrLCGMethod(VMPTR_MethodDesc vmMethodDesc);

bool IsJitHelper(VMPTR_MethodDesc vmMethodDesc);

// Return a TargetBuffer for the raw vararg signature.
TargetBuffer GetVarArgSig(CORDB_ADDRESS VASigCookieAddr,
CORDB_ADDRESS * pArgBase);
Expand Down
3 changes: 1 addition & 2 deletions src/coreclr/src/debug/di/rsstackwalk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -707,8 +707,7 @@ HRESULT CordbStackWalk::GetFrameWorker(ICorDebugFrame ** ppFrame)
// modified method, but at least the error won't leak out to interfere with inspection
// of the callstack as a whole.
if (!frameData.v.fNoMetadata &&
pNativeCode->GetFunction()->IsNativeImpl() != CordbFunction::kNativeOnly &&
!pDAC->IsJitHelper(pNativeCode->GetVMNativeCodeMethodDescToken()))
pNativeCode->GetFunction()->IsNativeImpl() != CordbFunction::kNativeOnly)
{
pNativeCode->LoadNativeInfo();

Expand Down
3 changes: 0 additions & 3 deletions src/coreclr/src/debug/inc/dacdbiinterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -1630,9 +1630,6 @@ class IDacDbiInterface
virtual
DynamicMethodType IsILStubOrLCGMethod(VMPTR_MethodDesc vmMethodDesc) = 0;

virtual
bool IsJitHelper(VMPTR_MethodDesc vmMethodDesc) = 0;

//
// Return a TargetBuffer for the raw vararg signature.
// Also return the address of the first argument in the vararg signature.
Expand Down
7 changes: 7 additions & 0 deletions src/coreclr/src/vm/stackwalk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2207,7 +2207,14 @@ StackWalkAction StackFrameIterator::Filter(void)
}
#endif // FEATURE_EH_FUNCLETS

#ifdef DACCESS_COMPILE
if (!m_crawl.pFunc->IsJitHelper())
{
fStop = true;
}
#else
fStop = true;
#endif
break;

case SFITER_FRAME_FUNCTION:
Expand Down

0 comments on commit d269b62

Please sign in to comment.