Skip to content

Commit bd6ed47

Browse files
authored
Restore original stack ref enumeration behavior (#84034)
The previous change to ICorDebugGCReferenceEnum accidently inverted the logic for interior pointers.
1 parent 669e5a9 commit bd6ed47

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

src/coreclr/debug/daccess/dacdbiimpl.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7768,17 +7768,16 @@ HRESULT DacStackReferenceWalker::Next(ULONG count, DacGcReference stackRefs[], U
77687768
{
77697769
stackRefs[i].dwType = CorReferenceStack;
77707770
stackRefs[i].vmDomain.SetDacTargetPtr(domain);
7771+
stackRefs[i].i64ExtraData = 0;
77717772

77727773
const SOSStackRefData &sosStackRef = mList.Get(i);
77737774
if (sosStackRef.Flags & GC_CALL_INTERIOR)
77747775
{
7775-
stackRefs[i].i64ExtraData = GC_CALL_INTERIOR;
7776-
stackRefs[i].objHnd.SetDacTargetPtr(CLRDATA_ADDRESS_TO_TADDR(sosStackRef.Address));
7776+
stackRefs[i].pObject = CLRDATA_ADDRESS_TO_TADDR(sosStackRef.Object) | 1;
77777777
}
77787778
else
77797779
{
7780-
stackRefs[i].i64ExtraData = 0;
7781-
stackRefs[i].pObject = CLRDATA_ADDRESS_TO_TADDR(sosStackRef.Object) | 1;
7780+
stackRefs[i].objHnd.SetDacTargetPtr(CLRDATA_ADDRESS_TO_TADDR(sosStackRef.Address));
77827781
}
77837782
}
77847783

0 commit comments

Comments
 (0)