Skip to content

Commit 646c0fb

Browse files
Max CharlambCopilot
andcommitted
WIP: ISOSDacInterface18 GCInfo APIs
Add ISOSDacInterface18 with GCInfo inspection APIs: - GetGCInfoHeader - GetGCInfoInterruptibleRanges - GetGCInfoSafePoints - GetGCInfoRegisterLifetimes - GetGCInfoStackSlotLifetimes Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent f4430a4 commit 646c0fb

20 files changed

Lines changed: 1560 additions & 5 deletions

File tree

src/coreclr/debug/daccess/daccess.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2962,6 +2962,14 @@ ClrDataAccess::QueryInterface(THIS_
29622962
{
29632963
ifaceRet = static_cast<ISOSDacInterface16*>(this);
29642964
}
2965+
else if (IsEqualIID(interfaceId, __uuidof(ISOSDacInterface17)))
2966+
{
2967+
ifaceRet = static_cast<ISOSDacInterface17*>(this);
2968+
}
2969+
else if (IsEqualIID(interfaceId, __uuidof(ISOSDacInterface18)))
2970+
{
2971+
ifaceRet = static_cast<ISOSDacInterface18*>(this);
2972+
}
29652973
else
29662974
{
29672975
*iface = NULL;

src/coreclr/debug/daccess/dacimpl.h

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -779,7 +779,9 @@ class ClrDataAccess
779779
public ISOSDacInterface13,
780780
public ISOSDacInterface14,
781781
public ISOSDacInterface15,
782-
public ISOSDacInterface16
782+
public ISOSDacInterface16,
783+
public ISOSDacInterface17,
784+
public ISOSDacInterface18
783785
{
784786
public:
785787
ClrDataAccess(ICorDebugDataTarget * pTarget, ICLRDataTarget * pLegacyTarget=0);
@@ -1190,6 +1192,18 @@ class ClrDataAccess
11901192
// ISOSDacInterface16
11911193
virtual HRESULT STDMETHODCALLTYPE GetGCDynamicAdaptationMode(int* pDynamicAdaptationMode);
11921194

1195+
// ISOSDacInterface17
1196+
virtual HRESULT STDMETHODCALLTYPE GetStressLogData(SOSStressLogData *data);
1197+
virtual HRESULT STDMETHODCALLTYPE GetStressLogThreadEnumerator(ISOSStressLogThreadEnum **ppEnum);
1198+
virtual HRESULT STDMETHODCALLTYPE GetStressLogMessageEnumerator(CLRDATA_ADDRESS threadStressLogAddress, ISOSStressLogMsgEnum **ppEnum);
1199+
1200+
// ISOSDacInterface18
1201+
virtual HRESULT STDMETHODCALLTYPE GetGCInfoHeader(CLRDATA_ADDRESS ip, SOSGCInfoHeader* header);
1202+
virtual HRESULT STDMETHODCALLTYPE GetGCInfoInterruptibleRanges(CLRDATA_ADDRESS ip, ULONG count, SOSCodeRange* ranges, ULONG* pNeeded);
1203+
virtual HRESULT STDMETHODCALLTYPE GetGCInfoSafePoints(CLRDATA_ADDRESS ip, ULONG count, unsigned int* offsets, ULONG* pNeeded);
1204+
virtual HRESULT STDMETHODCALLTYPE GetGCInfoRegisterLifetimes(CLRDATA_ADDRESS ip, ULONG count, SOSGCRegisterLifetime* lifetimes, ULONG* pNeeded);
1205+
virtual HRESULT STDMETHODCALLTYPE GetGCInfoStackSlotLifetimes(CLRDATA_ADDRESS ip, ULONG count, SOSGCStackSlotLifetime* lifetimes, ULONG* pNeeded);
1206+
11931207
//
11941208
// ClrDataAccess.
11951209
//

0 commit comments

Comments
 (0)