Skip to content

Commit c5bb20a

Browse files
kotlarmilosjkotasCopilotAaronRobinsonMSFT
authored
[clr-ios] Guard code-versioning paths with FEATURE_CODE_VERSIONING (#120812)
## Description This PR updates code-versioning and debugger/DAC paths with `FEATURE_CODE_VERSIONING` and provides stubs where needed. Code versioning was moved under tiered compilation in #120583, which is disabled for Apple mobile targets that caused build errors. --------- Co-authored-by: Jan Kotas <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Aaron Robinson <[email protected]>
1 parent 7067ea5 commit c5bb20a

18 files changed

+184
-71
lines changed

src/coreclr/debug/daccess/dacdbiimpl.cpp

Lines changed: 44 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -7153,6 +7153,7 @@ HRESULT DacDbiInterfaceImpl::GetReJitInfo(VMPTR_Module vmModule, mdMethodDef met
71537153
return S_OK;
71547154
}
71557155

7156+
#ifdef FEATURE_CODE_VERSIONING
71567157
HRESULT DacDbiInterfaceImpl::GetActiveRejitILCodeVersionNode(VMPTR_Module vmModule, mdMethodDef methodTk, OUT VMPTR_ILCodeVersionNode* pVmILCodeVersionNode)
71577158
{
71587159
DD_ENTER_MAY_THROW;
@@ -7183,34 +7184,6 @@ HRESULT DacDbiInterfaceImpl::GetActiveRejitILCodeVersionNode(VMPTR_Module vmModu
71837184
return S_OK;
71847185
}
71857186

7186-
HRESULT DacDbiInterfaceImpl::GetReJitInfo(VMPTR_MethodDesc vmMethod, CORDB_ADDRESS codeStartAddress, OUT VMPTR_ReJitInfo* pvmReJitInfo)
7187-
{
7188-
DD_ENTER_MAY_THROW;
7189-
_ASSERTE(!"You shouldn't be calling this - use GetNativeCodeVersionNode instead");
7190-
return S_OK;
7191-
}
7192-
7193-
HRESULT DacDbiInterfaceImpl::AreOptimizationsDisabled(VMPTR_Module vmModule, mdMethodDef methodTk, OUT BOOL* pOptimizationsDisabled)
7194-
{
7195-
DD_ENTER_MAY_THROW;
7196-
#ifdef FEATURE_REJIT
7197-
PTR_Module pModule = vmModule.GetDacPtr();
7198-
if (pModule == NULL || pOptimizationsDisabled == NULL || TypeFromToken(methodTk) != mdtMethodDef)
7199-
{
7200-
return E_INVALIDARG;
7201-
}
7202-
{
7203-
CodeVersionManager * pCodeVersionManager = pModule->GetCodeVersionManager();
7204-
ILCodeVersion activeILVersion = pCodeVersionManager->GetActiveILCodeVersion(pModule, methodTk);
7205-
*pOptimizationsDisabled = activeILVersion.IsDeoptimized();
7206-
}
7207-
#else
7208-
*pOptimizationsDisabled = FALSE;
7209-
#endif
7210-
7211-
return S_OK;
7212-
}
7213-
72147187
HRESULT DacDbiInterfaceImpl::GetNativeCodeVersionNode(VMPTR_MethodDesc vmMethod, CORDB_ADDRESS codeStartAddress, OUT VMPTR_NativeCodeVersionNode* pVmNativeCodeVersionNode)
72157188
{
72167189
DD_ENTER_MAY_THROW;
@@ -7227,13 +7200,6 @@ HRESULT DacDbiInterfaceImpl::GetNativeCodeVersionNode(VMPTR_MethodDesc vmMethod,
72277200
return S_OK;
72287201
}
72297202

7230-
HRESULT DacDbiInterfaceImpl::GetSharedReJitInfo(VMPTR_ReJitInfo vmReJitInfo, OUT VMPTR_SharedReJitInfo* pvmSharedReJitInfo)
7231-
{
7232-
DD_ENTER_MAY_THROW;
7233-
_ASSERTE(!"You shouldn't be calling this - use GetLCodeVersionNode instead");
7234-
return S_OK;
7235-
}
7236-
72377203
HRESULT DacDbiInterfaceImpl::GetILCodeVersionNode(VMPTR_NativeCodeVersionNode vmNativeCodeVersionNode, VMPTR_ILCodeVersionNode* pVmILCodeVersionNode)
72387204
{
72397205
DD_ENTER_MAY_THROW;
@@ -7258,13 +7224,6 @@ HRESULT DacDbiInterfaceImpl::GetILCodeVersionNode(VMPTR_NativeCodeVersionNode vm
72587224
return S_OK;
72597225
}
72607226

7261-
HRESULT DacDbiInterfaceImpl::GetSharedReJitInfoData(VMPTR_SharedReJitInfo vmSharedReJitInfo, DacSharedReJitInfo* pData)
7262-
{
7263-
DD_ENTER_MAY_THROW;
7264-
_ASSERTE(!"You shouldn't be calling this - use GetILCodeVersionNodeData instead");
7265-
return S_OK;
7266-
}
7267-
72687227
HRESULT DacDbiInterfaceImpl::GetILCodeVersionNodeData(VMPTR_ILCodeVersionNode vmILCodeVersionNode, DacSharedReJitInfo* pData)
72697228
{
72707229
DD_ENTER_MAY_THROW;
@@ -7289,6 +7248,49 @@ HRESULT DacDbiInterfaceImpl::GetILCodeVersionNodeData(VMPTR_ILCodeVersionNode vm
72897248
#endif
72907249
return S_OK;
72917250
}
7251+
#endif // FEATURE_CODE_VERSIONING
7252+
7253+
HRESULT DacDbiInterfaceImpl::GetReJitInfo(VMPTR_MethodDesc vmMethod, CORDB_ADDRESS codeStartAddress, OUT VMPTR_ReJitInfo* pvmReJitInfo)
7254+
{
7255+
DD_ENTER_MAY_THROW;
7256+
_ASSERTE(!"You shouldn't be calling this - use GetNativeCodeVersionNode instead");
7257+
return S_OK;
7258+
}
7259+
7260+
HRESULT DacDbiInterfaceImpl::AreOptimizationsDisabled(VMPTR_Module vmModule, mdMethodDef methodTk, OUT BOOL* pOptimizationsDisabled)
7261+
{
7262+
DD_ENTER_MAY_THROW;
7263+
PTR_Module pModule = vmModule.GetDacPtr();
7264+
if (pModule == NULL || pOptimizationsDisabled == NULL || TypeFromToken(methodTk) != mdtMethodDef)
7265+
{
7266+
return E_INVALIDARG;
7267+
}
7268+
#ifdef FEATURE_REJIT
7269+
{
7270+
CodeVersionManager * pCodeVersionManager = pModule->GetCodeVersionManager();
7271+
ILCodeVersion activeILVersion = pCodeVersionManager->GetActiveILCodeVersion(pModule, methodTk);
7272+
*pOptimizationsDisabled = activeILVersion.IsDeoptimized();
7273+
}
7274+
#else
7275+
*pOptimizationsDisabled = FALSE;
7276+
#endif
7277+
7278+
return S_OK;
7279+
}
7280+
7281+
HRESULT DacDbiInterfaceImpl::GetSharedReJitInfo(VMPTR_ReJitInfo vmReJitInfo, OUT VMPTR_SharedReJitInfo* pvmSharedReJitInfo)
7282+
{
7283+
DD_ENTER_MAY_THROW;
7284+
_ASSERTE(!"You shouldn't be calling this - use GetILCodeVersionNode instead");
7285+
return S_OK;
7286+
}
7287+
7288+
HRESULT DacDbiInterfaceImpl::GetSharedReJitInfoData(VMPTR_SharedReJitInfo vmSharedReJitInfo, DacSharedReJitInfo* pData)
7289+
{
7290+
DD_ENTER_MAY_THROW;
7291+
_ASSERTE(!"You shouldn't be calling this - use GetILCodeVersionNodeData instead");
7292+
return S_OK;
7293+
}
72927294

72937295
HRESULT DacDbiInterfaceImpl::GetDefinesBitField(ULONG32 *pDefines)
72947296
{

src/coreclr/debug/daccess/dacdbiimpl.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,14 +151,16 @@ class DacDbiInterfaceImpl :
151151
void GetGCHeapInformation(COR_HEAPINFO * pHeapInfo);
152152
HRESULT GetPEFileMDInternalRW(VMPTR_PEAssembly vmPEAssembly, OUT TADDR* pAddrMDInternalRW);
153153
HRESULT GetReJitInfo(VMPTR_Module vmModule, mdMethodDef methodTk, OUT VMPTR_ReJitInfo* pReJitInfo);
154+
#ifdef FEATURE_CODE_VERSIONING
154155
HRESULT GetActiveRejitILCodeVersionNode(VMPTR_Module vmModule, mdMethodDef methodTk, OUT VMPTR_ILCodeVersionNode* pVmILCodeVersionNode);
156+
HRESULT GetNativeCodeVersionNode(VMPTR_MethodDesc vmMethod, CORDB_ADDRESS codeStartAddress, OUT VMPTR_NativeCodeVersionNode* pVmNativeCodeVersionNode);
157+
HRESULT GetILCodeVersionNode(VMPTR_NativeCodeVersionNode vmNativeCodeVersionNode, VMPTR_ILCodeVersionNode* pVmILCodeVersionNode);
158+
HRESULT GetILCodeVersionNodeData(VMPTR_ILCodeVersionNode vmILCodeVersionNode, DacSharedReJitInfo* pData);
159+
#endif // FEATURE_CODE_VERSIONING
155160
HRESULT GetReJitInfo(VMPTR_MethodDesc vmMethod, CORDB_ADDRESS codeStartAddress, OUT VMPTR_ReJitInfo* pReJitInfo);
156161
HRESULT AreOptimizationsDisabled(VMPTR_Module vmModule, mdMethodDef methodTk, OUT BOOL* pOptimizationsDisabled);
157-
HRESULT GetNativeCodeVersionNode(VMPTR_MethodDesc vmMethod, CORDB_ADDRESS codeStartAddress, OUT VMPTR_NativeCodeVersionNode* pVmNativeCodeVersionNode);
158162
HRESULT GetSharedReJitInfo(VMPTR_ReJitInfo vmReJitInfo, VMPTR_SharedReJitInfo* pSharedReJitInfo);
159-
HRESULT GetILCodeVersionNode(VMPTR_NativeCodeVersionNode vmNativeCodeVersionNode, VMPTR_ILCodeVersionNode* pVmILCodeVersionNode);
160163
HRESULT GetSharedReJitInfoData(VMPTR_SharedReJitInfo sharedReJitInfo, DacSharedReJitInfo* pData);
161-
HRESULT GetILCodeVersionNodeData(VMPTR_ILCodeVersionNode vmILCodeVersionNode, DacSharedReJitInfo* pData);
162164
HRESULT GetDefinesBitField(ULONG32 *pDefines);
163165
HRESULT GetMDStructuresVersion(ULONG32* pMDStructuresVersion);
164166
HRESULT EnableGCNotificationEvents(BOOL fEnable);

src/coreclr/debug/daccess/request.cpp

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1245,7 +1245,7 @@ HRESULT ClrDataAccess::GetTieredVersions(
12451245
TADDR pNativeCode = PCODEToPINSTR((*iter).GetNativeCode());
12461246
nativeCodeAddrs[count].NativeCodeAddr = pNativeCode;
12471247
PTR_NativeCodeVersionNode pNode = (*iter).AsNode();
1248-
nativeCodeAddrs[count].NativeCodeVersionNodePtr = TO_CDADDR(PTR_TO_TADDR(pNode));
1248+
nativeCodeAddrs[count].NativeCodeVersionNodePtr = PTR_CDADDR(pNode);
12491249

12501250
if (r2rImageBase <= pNativeCode && pNativeCode < r2rImageEnd)
12511251
{
@@ -4658,6 +4658,8 @@ HRESULT ClrDataAccess::GetPendingReJITID(CLRDATA_ADDRESS methodDesc, int *pRejit
46584658
SOSDacEnter();
46594659

46604660
*pRejitId = -1;
4661+
hr = S_FALSE;
4662+
#ifdef FEATURE_CODE_VERSIONING
46614663
PTR_MethodDesc pMD = PTR_MethodDesc(TO_TADDR(methodDesc));
46624664

46634665
CodeVersionManager* pCodeVersionManager = pMD->GetCodeVersionManager();
@@ -4670,12 +4672,9 @@ HRESULT ClrDataAccess::GetPendingReJITID(CLRDATA_ADDRESS methodDesc, int *pRejit
46704672
else if (ilVersion.GetRejitState() == RejitFlags::kStateRequested)
46714673
{
46724674
*pRejitId = (int)ilVersion.GetVersionId();
4675+
hr = S_OK;
46734676
}
4674-
else
4675-
{
4676-
hr = S_FALSE;
4677-
}
4678-
4677+
#endif // FEATURE_CODE_VERSIONING
46794678
SOSDacLeave();
46804679

46814680
return hr;
@@ -4691,7 +4690,7 @@ HRESULT ClrDataAccess::GetReJITInformation(CLRDATA_ADDRESS methodDesc, int rejit
46914690
SOSDacEnter();
46924691

46934692
PTR_MethodDesc pMD = PTR_MethodDesc(TO_TADDR(methodDesc));
4694-
4693+
#ifdef FEATURE_CODE_VERSIONING
46954694
CodeVersionManager* pCodeVersionManager = pMD->GetCodeVersionManager();
46964695
CodeVersionManager::LockHolder codeVersioningLockHolder;
46974696
ILCodeVersion ilVersion = pCodeVersionManager->GetILCodeVersion(pMD, rejitId);
@@ -4719,10 +4718,16 @@ HRESULT ClrDataAccess::GetReJITInformation(CLRDATA_ADDRESS methodDesc, int rejit
47194718
break;
47204719
}
47214720

4722-
pReJitData->il = TO_CDADDR(PTR_TO_TADDR(ilVersion.GetIL()));
4721+
pReJitData->il = PTR_CDADDR(ilVersion.GetIL());
47234722
PTR_ILCodeVersionNode nodePtr = ilVersion.IsDefaultVersion() ? NULL : ilVersion.AsNode();
4724-
pReJitData->ilCodeVersionNodePtr = TO_CDADDR(PTR_TO_TADDR(nodePtr));
4723+
pReJitData->ilCodeVersionNodePtr = PTR_CDADDR(nodePtr);
47254724
}
4725+
#else
4726+
pReJitData->rejitID = rejitId;
4727+
pReJitData->flags = DacpReJitData2::kActive;
4728+
pReJitData->il = HOST_CDADDR(pMD->GetILHeader());
4729+
pReJitData->ilCodeVersionNodePtr = 0;
4730+
#endif // FEATURE_CODE_VERSIONING
47264731

47274732
SOSDacLeave();
47284733

@@ -4744,6 +4749,7 @@ HRESULT ClrDataAccess::GetProfilerModifiedILInformation(CLRDATA_ADDRESS methodDe
47444749
pILData->il = (CLRDATA_ADDRESS)NULL;
47454750
PTR_MethodDesc pMD = PTR_MethodDesc(TO_TADDR(methodDesc));
47464751

4752+
#ifdef FEATURE_CODE_VERSIONING
47474753
CodeVersionManager* pCodeVersionManager = pMD->GetCodeVersionManager();
47484754
CodeVersionManager::LockHolder codeVersioningLockHolder;
47494755
ILCodeVersion ilVersion = pCodeVersionManager->GetActiveILCodeVersion(pMD);
@@ -4752,6 +4758,7 @@ HRESULT ClrDataAccess::GetProfilerModifiedILInformation(CLRDATA_ADDRESS methodDe
47524758
pILData->type = DacpProfilerILData::ReJITModified;
47534759
pILData->rejitID = static_cast<ULONG>(pCodeVersionManager->GetActiveILCodeVersion(pMD).GetVersionId());
47544760
}
4761+
#endif // FEATURE_CODE_VERSIONING
47554762

47564763
TADDR pDynamicIL = pMD->GetModule()->GetDynamicIL(pMD->GetMemberDef());
47574764
if (pDynamicIL != (TADDR)NULL)
@@ -4776,6 +4783,7 @@ HRESULT ClrDataAccess::GetMethodsWithProfilerModifiedIL(CLRDATA_ADDRESS mod, CLR
47764783

47774784
*pcMethodDescs = 0;
47784785

4786+
#ifdef FEATURE_CODE_VERSIONING
47794787
PTR_Module pModule = PTR_Module(TO_TADDR(mod));
47804788
CodeVersionManager* pCodeVersionManager = pModule->GetCodeVersionManager();
47814789
CodeVersionManager::LockHolder codeVersioningLockHolder;
@@ -4810,7 +4818,7 @@ HRESULT ClrDataAccess::GetMethodsWithProfilerModifiedIL(CLRDATA_ADDRESS mod, CLR
48104818
}
48114819
}
48124820
}
4813-
4821+
#endif // FEATURE_CODE_VERSIONING
48144822
SOSDacLeave();
48154823

48164824
return hr;

src/coreclr/debug/di/module.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3258,7 +3258,7 @@ HRESULT CordbILCode::CreateNativeBreakpoint(ICorDebugFunctionBreakpoint **ppBrea
32583258
}
32593259

32603260

3261-
3261+
#ifdef FEATURE_CODE_VERSIONING
32623262
CordbReJitILCode::CordbReJitILCode(CordbFunction *pFunction, SIZE_T encVersion, VMPTR_ILCodeVersionNode vmILCodeVersionNode) :
32633263
CordbILCode(pFunction, TargetBuffer(), encVersion, mdSignatureNil, VmPtrToCookie(vmILCodeVersionNode)),
32643264
m_cClauses(0),
@@ -3544,6 +3544,7 @@ HRESULT CordbReJitILCode::GetInstrumentedILMap(ULONG32 cMap, ULONG32 *pcMap, COR
35443544
}
35453545
return S_OK;
35463546
}
3547+
#endif // FEATURE_CODE_VERSIONING
35473548

35483549
// FindNativeInfoInILVariableArray
35493550
// Linear search through an array of NativeVarInfos, to find the variable of index dwIndex, valid

src/coreclr/debug/di/rsfunction.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,10 @@ CordbFunction::CordbFunction(CordbModule * m,
4242
m_fIsNativeImpl(kUnknownImpl),
4343
m_fCachedMethodValuesValid(FALSE),
4444
m_argCountCached(0),
45-
m_fIsStaticCached(FALSE),
46-
m_reJitILCodes(1)
45+
m_fIsStaticCached(FALSE)
46+
#ifdef FEATURE_CODE_VERSIONING
47+
, m_reJitILCodes(1)
48+
#endif // FEATURE_CODE_VERSIONING
4749
{
4850
m_methodSigParserCached = SigParser(NULL, 0);
4951

@@ -108,7 +110,9 @@ void CordbFunction::Neuter()
108110
m_pClass = NULL;
109111

110112
m_nativeCode.Clear();
113+
#ifdef FEATURE_CODE_VERSIONING
111114
m_reJitILCodes.NeuterAndClear(GetProcess()->GetProcessLock());
115+
#endif // FEATURE_CODE_VERSIONING
112116

113117
CordbBase::Neuter();
114118
}
@@ -559,6 +563,7 @@ HRESULT CordbFunction::GetVersionNumber(ULONG32 *pnVersion)
559563
//-----------------------------------------------------------------------------
560564
HRESULT CordbFunction::GetActiveReJitRequestILCode(ICorDebugILCode **ppReJitedILCode)
561565
{
566+
#ifdef FEATURE_CODE_VERSIONING
562567
HRESULT hr = S_OK;
563568
VALIDATE_POINTER_TO_OBJECT(ppReJitedILCode, ICorDebugILCode **);
564569
PUBLIC_API_BEGIN(this);
@@ -576,6 +581,9 @@ HRESULT CordbFunction::GetActiveReJitRequestILCode(ICorDebugILCode **ppReJitedIL
576581
}
577582
PUBLIC_API_END(hr);
578583
return hr;
584+
#else
585+
return E_NOTIMPL;
586+
#endif // FEATURE_CODE_VERSIONING
579587
}
580588

581589
//-----------------------------------------------------------------------------
@@ -1274,6 +1282,7 @@ VOID CordbFunction::NotifyCodeCreated(CordbNativeCode* nativeCode)
12741282
// If the CordbReJitILCode doesn't exist, it creates it.
12751283
//
12761284
//
1285+
#ifdef FEATURE_CODE_VERSIONING
12771286
HRESULT CordbFunction::LookupOrCreateReJitILCode(VMPTR_ILCodeVersionNode vmILCodeVersionNode, CordbReJitILCode** ppILCode)
12781287
{
12791288
INTERNAL_API_ENTRY(this);
@@ -1298,3 +1307,4 @@ HRESULT CordbFunction::LookupOrCreateReJitILCode(VMPTR_ILCodeVersionNode vmILCod
12981307
*ppILCode = pILCode;
12991308
return S_OK;
13001309
}
1310+
#endif // FEATURE_CODE_VERSIONING

src/coreclr/debug/di/rspriv.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,9 @@ class Instantiation;
109109
class CordbType;
110110
class CordbNativeCode;
111111
class CordbILCode;
112+
#ifdef FEATURE_CODE_VERSIONING
112113
class CordbReJitILCode;
114+
#endif // FEATURE_CODE_VERSIONING
113115
class CordbEval;
114116

115117
class CordbMDA;
@@ -5496,9 +5498,11 @@ class CordbFunction : public CordbBase,
54965498
// Get the existing IL code object
54975499
HRESULT GetILCode(CordbILCode ** ppCode);
54985500

5501+
#ifdef FEATURE_CODE_VERSIONING
54995502
// Finds or creates an ILCode for a given rejit request
55005503
HRESULT LookupOrCreateReJitILCode(VMPTR_ILCodeVersionNode vmILCodeVersionNode,
55015504
CordbReJitILCode** ppILCode);
5505+
#endif // FEATURE_CODE_VERSIONING
55025506

55035507

55045508
#ifdef FEATURE_METADATA_UPDATER
@@ -5613,9 +5617,11 @@ class CordbFunction : public CordbBase,
56135617
// Only valid if m_fCachedMethodValuesValid is set.
56145618
BOOL m_fIsStaticCached;
56155619

5620+
#ifdef FEATURE_CODE_VERSIONING
56165621
// A collection, indexed by VMPTR_SharedReJitInfo, of IL code for rejit requests
56175622
// The collection is filled lazily by LookupOrCreateReJitILCode
56185623
CordbSafeHashTable<CordbReJitILCode> m_reJitILCodes;
5624+
#endif // FEATURE_CODE_VERSIONING
56195625
};
56205626

56215627
//-----------------------------------------------------------------------------
@@ -5833,6 +5839,7 @@ class CordbILCode : public CordbCode
58335839

58345840
}; // class CordbILCode
58355841

5842+
#ifdef FEATURE_CODE_VERSIONING
58365843
/* ------------------------------------------------------------------------- *
58375844
* CordbReJitILCode class
58385845
* This class represents an IL code blob for a particular EnC version and
@@ -5878,6 +5885,7 @@ class CordbReJitILCode : public CordbILCode,
58785885
ULONG32 m_cILMap;
58795886
NewArrayHolder<COR_IL_MAP> m_pILMap;
58805887
};
5888+
#endif // FEATURE_CODE_VERSIONING
58815889

58825890
/* ------------------------------------------------------------------------- *
58835891
* CordbNativeCode class. These correspond to MethodDesc's on the left-side.
@@ -7368,7 +7376,11 @@ class CordbJITILFrame : public CordbBase, public ICorDebugILFrame, public ICorDe
73687376
GENERICS_TYPE_TOKEN exactGenericArgsToken,
73697377
DWORD dwExactGenericArgsTokenIndex,
73707378
bool fVarArgFnx,
7379+
#ifdef FEATURE_CODE_VERSIONING
73717380
CordbReJitILCode * pReJitCode,
7381+
#else
7382+
void * pReJitCode,
7383+
#endif // FEATURE_CODE_VERSIONING
73727384
bool fAdjustedIP);
73737385
HRESULT Init();
73747386
virtual ~CordbJITILFrame();
@@ -7479,7 +7491,9 @@ class CordbJITILFrame : public CordbBase, public ICorDebugILFrame, public ICorDe
74797491
static HRESULT BuildInstantiationForCallsite(CordbModule *pModule, NewArrayHolder<CordbType*> &types, Instantiation &inst, Instantiation *currentInstantiation, mdToken targetClass, SigParser funcGenerics);
74807492

74817493
CordbILCode* GetOriginalILCode();
7494+
#ifdef FEATURE_CODE_VERSIONING
74827495
CordbReJitILCode* GetReJitILCode();
7496+
#endif // FEATURE_CODE_VERSIONING
74837497
void AdjustIPAfterException();
74847498

74857499
private:
@@ -7546,8 +7560,10 @@ class CordbJITILFrame : public CordbBase, public ICorDebugILFrame, public ICorDe
75467560
// IL Variable index of the Generics Arg Token.
75477561
DWORD m_dwFrameParamsTokenIndex;
75487562

7563+
#ifdef FEATURE_CODE_VERSIONING
75497564
// if this frame is instrumented with rejit, this will point to the instrumented IL code
75507565
RSSmartPtr<CordbReJitILCode> m_pReJitCode;
7566+
#endif // FEATURE_CODE_VERSIONING
75517567
BOOL m_adjustedIP;
75527568
};
75537569

0 commit comments

Comments
 (0)