| 1 | // Licensed to the .NET Foundation under one or more agreements. |
| 2 | // The .NET Foundation licenses this file to you under the MIT license. |
| 3 | // See the LICENSE file in the project root for more information. |
| 4 | // This file contains the globals and statics that are visible to DAC. |
| 5 | // It is used for the following: |
| 6 | // 1. in daccess.h to build the table of DAC globals |
| 7 | // 2. in enummem.cpp to dump out the related memory of static and globals |
| 8 | // in a mini dump or heap dump |
| 9 | // 3. in DacUpdateDll and toolbox\DacTablenGen\main.cs |
| 10 | // |
| 11 | // To use this functionality for other tools or purposes, define the |
| 12 | // DEFINE_DACVAR macro & include dacvars.h like so (see enummem.cpp and/or |
| 13 | // daccess.h for examples): |
| 14 | // |
| 15 | // #define DEFINE_DACVAR(type, size, id, var) type id; //this defn. discards |
| 16 | // //the size |
| 17 | // #include "dacvars.h" |
| 18 | // |
| 19 | // @dbgtodo: |
| 20 | // Ideally we may be able to build a tool that generates this automatically. |
| 21 | // At the least, we should automatically verify that the contents of this file |
| 22 | // are consistent with the uses of all the macros like SVAL_DECL and GARY_DECL. |
| 23 | // |
| 24 | //================================================= |
| 25 | // INSTRUCTIONS FOR ADDING VARIABLES TO THIS FILE |
| 26 | //================================================= |
| 27 | // You need to add a global or static declared with DAC macros, such as SPTR_* |
| 28 | // GPTR_*, SVAL_*, GVAL_*, or GARY_*, only if the global or static is actually used |
| 29 | // in a DACized code path. If you have declared a static or global that way just |
| 30 | // because you were pattern-matching or because you anticipate that the variable |
| 31 | // may eventually be used in a DACized code path, you don't need to add it here, |
| 32 | // although in that case, you should not really use the DAC macro when you declare |
| 33 | // the global or static. |
| 34 | // * * * |
| 35 | // The FIRST ARGUMENT should always be specified as ULONG. This is the type of |
| 36 | // the offsets for the corresponding id in the _DacGlobals table. |
| 37 | // @dbgtodo: |
| 38 | // We should get rid of the ULONG argument since it's always the same. We would |
| 39 | // also need to modify DacTablenGen\main.cs. |
| 40 | // * * * |
| 41 | // The SECOND ARGUMENT, "true_type," is used to calculate the true size of the |
| 42 | // static/global variable. It is currently used only in enummem.cpp to write out |
| 43 | // theproper size of memory for dumps. |
| 44 | // * * * |
| 45 | // The THIRD ARGUMENT should be a qualified name. If the variable is a static data |
| 46 | // member, the name should be <class_name>__<member_name>. If the variable is a |
| 47 | // global, the name should be <dac>__<global_name>. |
| 48 | // * * * |
| 49 | // The FOURTH ARGUMENT should be the actual name of the static/global variable. If |
| 50 | // static data the should be [<namespace>::]<class_name>::<member_name>. If global, |
| 51 | // it should look like <global_name>. |
| 52 | // * * * |
| 53 | // If you need to add an entry to this file, your type may not be visible when |
| 54 | // this file is compiled. In that case, you need to do one of two things: |
| 55 | // - If the type is a pointer type, you can simply use UNKNOWN_POINTER_TYPE as the |
| 56 | // "true type." It may be useful to specify the non-visible type in a comment. |
| 57 | // - If the type is a composite/user-defined type, you must #include the header |
| 58 | // file that defines the type in enummem.cpp. Do NOT #include it in daccess.h |
| 59 | // Array types may be dumped via an explicit call to enumMem, so they should |
| 60 | // be declared with DEFINE_DACVAR_NO_DUMP. The size in this case is immaterial, since |
| 61 | // nothing will be dumped. |
| 62 | |
| 63 | #ifndef DEFINE_DACVAR |
| 64 | #define DEFINE_DACVAR(type, true_type, id, var) |
| 65 | #endif |
| 66 | |
| 67 | // Use this macro to define a static var that is known to DAC, but not captured in a dump. |
| 68 | #ifndef DEFINE_DACVAR_NO_DUMP |
| 69 | #define DEFINE_DACVAR_NO_DUMP(type, true_type, id, var) |
| 70 | #endif |
| 71 | |
| 72 | #define UNKNOWN_POINTER_TYPE SIZE_T |
| 73 | |
| 74 | DEFINE_DACVAR(ULONG, PTR_RangeSection, ExecutionManager__m_CodeRangeList, ExecutionManager::m_CodeRangeList) |
| 75 | DEFINE_DACVAR(ULONG, PTR_EECodeManager, ExecutionManager__m_pDefaultCodeMan, ExecutionManager::m_pDefaultCodeMan) |
| 76 | DEFINE_DACVAR(ULONG, LONG, ExecutionManager__m_dwReaderCount, ExecutionManager::m_dwReaderCount) |
| 77 | DEFINE_DACVAR(ULONG, LONG, ExecutionManager__m_dwWriterLock, ExecutionManager::m_dwWriterLock) |
| 78 | |
| 79 | DEFINE_DACVAR(ULONG, PTR_EEJitManager, ExecutionManager__m_pEEJitManager, ExecutionManager::m_pEEJitManager) |
| 80 | #ifdef FEATURE_PREJIT |
| 81 | DEFINE_DACVAR(ULONG, PTR_NativeImageJitManager, ExecutionManager__m_pNativeImageJitManager, ExecutionManager::m_pNativeImageJitManager) |
| 82 | #endif |
| 83 | #ifdef FEATURE_READYTORUN |
| 84 | DEFINE_DACVAR(ULONG, PTR_ReadyToRunJitManager, ExecutionManager__m_pReadyToRunJitManager, ExecutionManager::m_pReadyToRunJitManager) |
| 85 | #endif |
| 86 | |
| 87 | DEFINE_DACVAR_NO_DUMP(ULONG, VMHELPDEF *, dac__hlpFuncTable, ::hlpFuncTable) |
| 88 | DEFINE_DACVAR(ULONG, VMHELPDEF *, dac__hlpDynamicFuncTable, ::hlpDynamicFuncTable) |
| 89 | |
| 90 | DEFINE_DACVAR(ULONG, PTR_StubManager, StubManager__g_pFirstManager, StubManager::g_pFirstManager) |
| 91 | DEFINE_DACVAR(ULONG, PTR_PrecodeStubManager, PrecodeStubManager__g_pManager, PrecodeStubManager::g_pManager) |
| 92 | DEFINE_DACVAR(ULONG, PTR_StubLinkStubManager, StubLinkStubManager__g_pManager, StubLinkStubManager::g_pManager) |
| 93 | DEFINE_DACVAR(ULONG, PTR_ThunkHeapStubManager, ThunkHeapStubManager__g_pManager, ThunkHeapStubManager::g_pManager) |
| 94 | DEFINE_DACVAR(ULONG, PTR_JumpStubStubManager, JumpStubStubManager__g_pManager, JumpStubStubManager::g_pManager) |
| 95 | DEFINE_DACVAR(ULONG, PTR_RangeSectionStubManager, RangeSectionStubManager__g_pManager, RangeSectionStubManager::g_pManager) |
| 96 | DEFINE_DACVAR(ULONG, PTR_DelegateInvokeStubManager, DelegateInvokeStubManager__g_pManager, DelegateInvokeStubManager::g_pManager) |
| 97 | DEFINE_DACVAR(ULONG, PTR_VirtualCallStubManagerManager, VirtualCallStubManagerManager__g_pManager, VirtualCallStubManagerManager::g_pManager) |
| 98 | |
| 99 | DEFINE_DACVAR(ULONG, PTR_ThreadStore, ThreadStore__s_pThreadStore, ThreadStore::s_pThreadStore) |
| 100 | |
| 101 | DEFINE_DACVAR(ULONG, int, ThreadpoolMgr__cpuUtilization, ThreadpoolMgr::cpuUtilization) |
| 102 | DEFINE_DACVAR(ULONG, ThreadpoolMgr::ThreadCounter, ThreadpoolMgr__WorkerCounter, ThreadpoolMgr::WorkerCounter) |
| 103 | DEFINE_DACVAR(ULONG, int, ThreadpoolMgr__MinLimitTotalWorkerThreads, ThreadpoolMgr::MinLimitTotalWorkerThreads) |
| 104 | DEFINE_DACVAR(ULONG, DWORD, ThreadpoolMgr__MaxLimitTotalWorkerThreads, ThreadpoolMgr::MaxLimitTotalWorkerThreads) |
| 105 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE /*PTR_WorkRequest*/, ThreadpoolMgr__WorkRequestHead, ThreadpoolMgr::WorkRequestHead) // PTR_WorkRequest is not defined. So use a pointer type |
| 106 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE /*PTR_WorkRequest*/, ThreadpoolMgr__WorkRequestTail, ThreadpoolMgr::WorkRequestTail) // |
| 107 | DEFINE_DACVAR(ULONG, ThreadpoolMgr::ThreadCounter, ThreadpoolMgr__CPThreadCounter, ThreadpoolMgr::CPThreadCounter) |
| 108 | DEFINE_DACVAR(ULONG, LONG, ThreadpoolMgr__MaxFreeCPThreads, ThreadpoolMgr::MaxFreeCPThreads) |
| 109 | DEFINE_DACVAR(ULONG, LONG, ThreadpoolMgr__MaxLimitTotalCPThreads, ThreadpoolMgr::MaxLimitTotalCPThreads) |
| 110 | DEFINE_DACVAR(ULONG, LONG, ThreadpoolMgr__MinLimitTotalCPThreads, ThreadpoolMgr::MinLimitTotalCPThreads) |
| 111 | DEFINE_DACVAR(ULONG, LIST_ENTRY, ThreadpoolMgr__TimerQueue, ThreadpoolMgr::TimerQueue) |
| 112 | DEFINE_DACVAR_NO_DUMP(ULONG, SIZE_T, dac__HillClimbingLog, ::HillClimbingLog) |
| 113 | DEFINE_DACVAR(ULONG, int, dac__HillClimbingLogFirstIndex, ::HillClimbingLogFirstIndex) |
| 114 | DEFINE_DACVAR(ULONG, int, dac__HillClimbingLogSize, ::HillClimbingLogSize) |
| 115 | |
| 116 | DEFINE_DACVAR(ULONG, PTR_Thread, dac__g_pFinalizerThread, ::g_pFinalizerThread) |
| 117 | DEFINE_DACVAR(ULONG, PTR_Thread, dac__g_pSuspensionThread, ::g_pSuspensionThread) |
| 118 | |
| 119 | DEFINE_DACVAR(ULONG, DWORD, dac__g_heap_type, g_heap_type) |
| 120 | DEFINE_DACVAR(ULONG, PTR_GcDacVars, dac__g_gcDacGlobals, g_gcDacGlobals) |
| 121 | |
| 122 | DEFINE_DACVAR(ULONG, PTR_AppDomain, AppDomain__m_pTheAppDomain, AppDomain::m_pTheAppDomain) |
| 123 | DEFINE_DACVAR(ULONG, PTR_SystemDomain, SystemDomain__m_pSystemDomain, SystemDomain::m_pSystemDomain) |
| 124 | DEFINE_DACVAR(ULONG, ArrayListStatic, SystemDomain__m_appDomainIndexList, SystemDomain::m_appDomainIndexList) |
| 125 | DEFINE_DACVAR(ULONG, BOOL, SystemDomain__s_fForceDebug, SystemDomain::s_fForceDebug) |
| 126 | DEFINE_DACVAR(ULONG, BOOL, SystemDomain__s_fForceProfiling, SystemDomain::s_fForceProfiling) |
| 127 | DEFINE_DACVAR(ULONG, BOOL, SystemDomain__s_fForceInstrument, SystemDomain::s_fForceInstrument) |
| 128 | |
| 129 | #ifdef FEATURE_INTEROP_DEBUGGING |
| 130 | DEFINE_DACVAR(ULONG, DWORD, dac__g_debuggerWordTLSIndex, g_debuggerWordTLSIndex) |
| 131 | #endif |
| 132 | DEFINE_DACVAR(ULONG, DWORD, dac__g_TlsIndex, g_TlsIndex) |
| 133 | |
| 134 | #if defined(FEATURE_WINDOWSPHONE) |
| 135 | DEFINE_DACVAR(ULONG, int, CCLRErrorReportingManager__g_ECustomDumpFlavor, CCLRErrorReportingManager::g_ECustomDumpFlavor) |
| 136 | #endif |
| 137 | |
| 138 | DEFINE_DACVAR(ULONG, PTR_SString, SString__s_Empty, SString::s_Empty) |
| 139 | |
| 140 | #ifdef FEATURE_APPX |
| 141 | DEFINE_DACVAR(ULONG, BOOL, dac__g_fAppX, ::g_fAppX) |
| 142 | #endif // FEATURE_APPX |
| 143 | |
| 144 | DEFINE_DACVAR(ULONG, BOOL, SString__s_IsANSIMultibyte, SString::s_IsANSIMultibyte) |
| 145 | |
| 146 | |
| 147 | DEFINE_DACVAR(ULONG, INT32, ArrayBase__s_arrayBoundsZero, ArrayBase::s_arrayBoundsZero) |
| 148 | |
| 149 | DEFINE_DACVAR(ULONG, BOOL, StackwalkCache__s_Enabled, StackwalkCache::s_Enabled) |
| 150 | |
| 151 | DEFINE_DACVAR(ULONG, PTR_JITNotification, dac__g_pNotificationTable, ::g_pNotificationTable) |
| 152 | DEFINE_DACVAR(ULONG, ULONG32, dac__g_dacNotificationFlags, ::g_dacNotificationFlags) |
| 153 | DEFINE_DACVAR(ULONG, PTR_GcNotification, dac__g_pGcNotificationTable, ::g_pGcNotificationTable) |
| 154 | |
| 155 | DEFINE_DACVAR(ULONG, PTR_EEConfig, dac__g_pConfig, ::g_pConfig) |
| 156 | |
| 157 | DEFINE_DACVAR(ULONG, MscorlibBinder, dac__g_Mscorlib, ::g_Mscorlib) |
| 158 | |
| 159 | #if defined(PROFILING_SUPPORTED) || defined(PROFILING_SUPPORTED_DATA) |
| 160 | DEFINE_DACVAR(ULONG, ProfControlBlock, dac__g_profControlBlock, ::g_profControlBlock) |
| 161 | #endif // defined(PROFILING_SUPPORTED) || defined(PROFILING_SUPPORTED_DATA) |
| 162 | |
| 163 | DEFINE_DACVAR(ULONG, PTR_DWORD, dac__g_card_table, ::g_card_table) |
| 164 | DEFINE_DACVAR(ULONG, PTR_BYTE, dac__g_lowest_address, ::g_lowest_address) |
| 165 | DEFINE_DACVAR(ULONG, PTR_BYTE, dac__g_highest_address, ::g_highest_address) |
| 166 | |
| 167 | DEFINE_DACVAR(ULONG, IGCHeap, dac__g_pGCHeap, ::g_pGCHeap) |
| 168 | |
| 169 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pThinLockThreadIdDispenser, ::g_pThinLockThreadIdDispenser) |
| 170 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pModuleIndexDispenser, ::g_pModuleIndexDispenser) |
| 171 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pObjectClass, ::g_pObjectClass) |
| 172 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pRuntimeTypeClass, ::g_pRuntimeTypeClass) |
| 173 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pCanonMethodTableClass, ::g_pCanonMethodTableClass) |
| 174 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pStringClass, ::g_pStringClass) |
| 175 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pArrayClass, ::g_pArrayClass) |
| 176 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pSZArrayHelperClass, ::g_pSZArrayHelperClass) |
| 177 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pNullableClass, ::g_pNullableClass) |
| 178 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pByReferenceClass, ::g_pByReferenceClass) |
| 179 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pExceptionClass, ::g_pExceptionClass) |
| 180 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pThreadAbortExceptionClass, ::g_pThreadAbortExceptionClass) |
| 181 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pOutOfMemoryExceptionClass, ::g_pOutOfMemoryExceptionClass) |
| 182 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pStackOverflowExceptionClass, ::g_pStackOverflowExceptionClass) |
| 183 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pExecutionEngineExceptionClass, ::g_pExecutionEngineExceptionClass) |
| 184 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pDelegateClass, ::g_pDelegateClass) |
| 185 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pMulticastDelegateClass, ::g_pMulticastDelegateClass) |
| 186 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pFreeObjectMethodTable, ::g_pFreeObjectMethodTable) |
| 187 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pOverlappedDataClass, ::g_pOverlappedDataClass) |
| 188 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pValueTypeClass, ::g_pValueTypeClass) |
| 189 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pEnumClass, ::g_pEnumClass) |
| 190 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pThreadClass, ::g_pThreadClass) |
| 191 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pPredefinedArrayTypes, ::g_pPredefinedArrayTypes) |
| 192 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_TypedReferenceMT, ::g_TypedReferenceMT) |
| 193 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pByteArrayMT, ::g_pByteArrayMT) |
| 194 | |
| 195 | #ifdef FEATURE_COMINTEROP |
| 196 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pBaseCOMObject, ::g_pBaseCOMObject) |
| 197 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pBaseRuntimeClass, ::g_pBaseRuntimeClass) |
| 198 | #endif |
| 199 | |
| 200 | #ifdef FEATURE_ICASTABLE |
| 201 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pICastableInterface, ::g_pICastableInterface) |
| 202 | #endif // FEATURE_ICASTABLE |
| 203 | |
| 204 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pExecuteBackoutCodeHelperMethod, ::g_pExecuteBackoutCodeHelperMethod) |
| 205 | |
| 206 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pObjectFinalizerMD, ::g_pObjectFinalizerMD) |
| 207 | |
| 208 | DEFINE_DACVAR(ULONG, bool, dac__g_fProcessDetach, ::g_fProcessDetach) |
| 209 | DEFINE_DACVAR(ULONG, DWORD, dac__g_fEEShutDown, ::g_fEEShutDown) |
| 210 | DEFINE_DACVAR(ULONG, DWORD, dac__g_fHostConfig, ::g_fHostConfig) |
| 211 | |
| 212 | DEFINE_DACVAR(ULONG, ULONG, dac__g_CORDebuggerControlFlags, ::g_CORDebuggerControlFlags) |
| 213 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pDebugger, ::g_pDebugger) |
| 214 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pDebugInterface, ::g_pDebugInterface) |
| 215 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pEEDbgInterfaceImpl, ::g_pEEDbgInterfaceImpl) |
| 216 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pEEInterface, ::g_pEEInterface) |
| 217 | DEFINE_DACVAR(ULONG, ULONG, dac__CLRJitAttachState, ::CLRJitAttachState) |
| 218 | |
| 219 | DEFINE_DACVAR(ULONG, BOOL, Debugger__s_fCanChangeNgenFlags, Debugger::s_fCanChangeNgenFlags) |
| 220 | |
| 221 | DEFINE_DACVAR(ULONG, PTR_DebuggerPatchTable, DebuggerController__g_patches, DebuggerController::g_patches) |
| 222 | DEFINE_DACVAR(ULONG, BOOL, DebuggerController__g_patchTableValid, DebuggerController::g_patchTableValid) |
| 223 | |
| 224 | DEFINE_DACVAR(ULONG, SIZE_T, dac__gLowestFCall, ::gLowestFCall) |
| 225 | DEFINE_DACVAR(ULONG, SIZE_T, dac__gHighestFCall, ::gHighestFCall) |
| 226 | DEFINE_DACVAR(ULONG, SIZE_T, dac__gFCallMethods, ::gFCallMethods) |
| 227 | |
| 228 | DEFINE_DACVAR(ULONG, PTR_SyncTableEntry, dac__g_pSyncTable, ::g_pSyncTable) |
| 229 | #ifdef FEATURE_COMINTEROP |
| 230 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pRCWCleanupList, ::g_pRCWCleanupList) |
| 231 | DEFINE_DACVAR(ULONG, BOOL, RCWWalker__s_bIsGlobalPeggingOn, RCWWalker::s_bIsGlobalPeggingOn) |
| 232 | #endif // FEATURE_COMINTEROP |
| 233 | |
| 234 | #ifndef FEATURE_PAL |
| 235 | DEFINE_DACVAR(ULONG, SIZE_T, dac__g_runtimeLoadedBaseAddress, ::g_runtimeLoadedBaseAddress) |
| 236 | DEFINE_DACVAR(ULONG, SIZE_T, dac__g_runtimeVirtualSize, ::g_runtimeVirtualSize) |
| 237 | #endif // !FEATURE_PAL |
| 238 | |
| 239 | DEFINE_DACVAR(ULONG, SyncBlockCache *, SyncBlockCache__s_pSyncBlockCache, SyncBlockCache::s_pSyncBlockCache) |
| 240 | |
| 241 | DEFINE_DACVAR(ULONG, UNKNOWN_POINTER_TYPE, dac__g_pStressLog, ::g_pStressLog) |
| 242 | |
| 243 | DEFINE_DACVAR(ULONG, SIZE_T, dac__s_gsCookie, ::s_gsCookie) |
| 244 | |
| 245 | DEFINE_DACVAR_NO_DUMP(ULONG, SIZE_T, dac__g_FCDynamicallyAssignedImplementations, ::g_FCDynamicallyAssignedImplementations) |
| 246 | |
| 247 | #ifndef FEATURE_PAL |
| 248 | DEFINE_DACVAR(ULONG, HANDLE, dac__g_hContinueStartupEvent, ::g_hContinueStartupEvent) |
| 249 | #endif // !FEATURE_PAL |
| 250 | DEFINE_DACVAR(ULONG, DWORD, CorHost2__m_dwStartupFlags, CorHost2::m_dwStartupFlags) |
| 251 | |
| 252 | DEFINE_DACVAR(ULONG, HRESULT, dac__g_hrFatalError, ::g_hrFatalError) |
| 253 | |
| 254 | #if defined(DEBUGGING_SUPPORTED) && defined (FEATURE_PREJIT) |
| 255 | DEFINE_DACVAR(ULONG, DWORD, PEFile__s_NGENDebugFlags, PEFile::s_NGENDebugFlags) |
| 256 | #endif //defined(DEBUGGING_SUPPORTED) && defined (FEATURE_PREJIT) |
| 257 | |
| 258 | #ifdef FEATURE_MINIMETADATA_IN_TRIAGEDUMPS |
| 259 | DEFINE_DACVAR(ULONG, DWORD, dac__g_MiniMetaDataBuffMaxSize, ::g_MiniMetaDataBuffMaxSize) |
| 260 | DEFINE_DACVAR(ULONG, TADDR, dac__g_MiniMetaDataBuffAddress, ::g_MiniMetaDataBuffAddress) |
| 261 | #endif // FEATURE_MINIMETADATA_IN_TRIAGEDUMPS |
| 262 | |
| 263 | DEFINE_DACVAR(ULONG, SIZE_T, dac__g_clrNotificationArguments, ::g_clrNotificationArguments) |
| 264 | |
| 265 | #undef DEFINE_DACVAR |
| 266 | #undef DEFINE_DACVAR_NO_DUMP |
| 267 | |