1*c2c66affSColin Finck/* 2*c2c66affSColin Finck * Copyright (C) 2011 Alistair Leslie-Hughes 3*c2c66affSColin Finck * 4*c2c66affSColin Finck * This library is free software; you can redistribute it and/or 5*c2c66affSColin Finck * modify it under the terms of the GNU Lesser General Public 6*c2c66affSColin Finck * License as published by the Free Software Foundation; either 7*c2c66affSColin Finck * version 2.1 of the License, or (at your option) any later version. 8*c2c66affSColin Finck * 9*c2c66affSColin Finck * This library is distributed in the hope that it will be useful, 10*c2c66affSColin Finck * but WITHOUT ANY WARRANTY; without even the implied warranty of 11*c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12*c2c66affSColin Finck * Lesser General Public License for more details. 13*c2c66affSColin Finck * 14*c2c66affSColin Finck * You should have received a copy of the GNU Lesser General Public 15*c2c66affSColin Finck * License along with this library; if not, write to the Free Software 16*c2c66affSColin Finck * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17*c2c66affSColin Finck */ 18*c2c66affSColin Finck 19*c2c66affSColin Finckimport "unknwn.idl"; 20*c2c66affSColin Finckimport "objidl.idl"; 21*c2c66affSColin Finck 22*c2c66affSColin Finckcpp_quote("#ifdef WINE_NO_UNICODE_MACROS") 23*c2c66affSColin Finckcpp_quote("#undef CreateProcess") 24*c2c66affSColin Finckcpp_quote("#endif") 25*c2c66affSColin Finck 26*c2c66affSColin Finckinterface ICorDebugAppDomain; 27*c2c66affSColin Finckinterface ICorDebugAppDomainEnum; 28*c2c66affSColin Finckinterface ICorDebugAssembly; 29*c2c66affSColin Finckinterface ICorDebugAssemblyEnum; 30*c2c66affSColin Finckinterface ICorDebugBreakpoint; 31*c2c66affSColin Finckinterface ICorDebugBreakpointEnum; 32*c2c66affSColin Finckinterface ICorDebugChain; 33*c2c66affSColin Finckinterface ICorDebugChainEnum; 34*c2c66affSColin Finckinterface ICorDebugClass; 35*c2c66affSColin Finckinterface ICorDebugCode; 36*c2c66affSColin Finckinterface ICorDebugContext; 37*c2c66affSColin Finckinterface ICorDebugEditAndContinueSnapshot; 38*c2c66affSColin Finckinterface ICorDebugEditAndContinueErrorInfo; 39*c2c66affSColin Finckinterface ICorDebugEnum; 40*c2c66affSColin Finckinterface ICorDebugErrorInfoEnum; 41*c2c66affSColin Finckinterface ICorDebugEval; 42*c2c66affSColin Finckinterface ICorDebugFrame; 43*c2c66affSColin Finckinterface ICorDebugFrameEnum; 44*c2c66affSColin Finckinterface ICorDebugFunction; 45*c2c66affSColin Finckinterface ICorDebugFunctionBreakpoint; 46*c2c66affSColin Finckinterface ICorDebugManagedCallback; 47*c2c66affSColin Finckinterface ICorDebugManagedCallback2; 48*c2c66affSColin Finckinterface ICorDebugMDA; 49*c2c66affSColin Finckinterface ICorDebugModule; 50*c2c66affSColin Finckinterface ICorDebugModuleBreakpoint; 51*c2c66affSColin Finckinterface ICorDebugModuleEnum; 52*c2c66affSColin Finckinterface ICorDebugObjectEnum; 53*c2c66affSColin Finckinterface ICorDebugObjectValue; 54*c2c66affSColin Finckinterface ICorDebugProcess; 55*c2c66affSColin Finckinterface ICorDebugProcessEnum; 56*c2c66affSColin Finckinterface ICorDebugRegisterSet; 57*c2c66affSColin Finckinterface ICorDebugStepper; 58*c2c66affSColin Finckinterface ICorDebugStepperEnum; 59*c2c66affSColin Finckinterface ICorDebugThreadEnum; 60*c2c66affSColin Finckinterface ICorDebugUnmanagedCallback; 61*c2c66affSColin Finckinterface ICorDebugValue; 62*c2c66affSColin Finckinterface ICorDebugValueBreakpoint; 63*c2c66affSColin Finck 64*c2c66affSColin Finck 65*c2c66affSColin Fincktypedef [wire_marshal(unsigned long)] void *HPROCESS; 66*c2c66affSColin Fincktypedef [wire_marshal(unsigned long)] void *HTHREAD; 67*c2c66affSColin Finck 68*c2c66affSColin Finck/* These are defined in corhrd.idl but used here. */ 69*c2c66affSColin Finckcpp_quote("#if 0") 70*c2c66affSColin Finck 71*c2c66affSColin Fincktypedef UINT32 mdToken; 72*c2c66affSColin Fincktypedef mdToken mdModule; 73*c2c66affSColin Fincktypedef SIZE_T mdScope; 74*c2c66affSColin Fincktypedef mdToken mdTypeDef; 75*c2c66affSColin Fincktypedef mdToken mdSourceFile; 76*c2c66affSColin Fincktypedef mdToken mdMemberRef; 77*c2c66affSColin Fincktypedef mdToken mdMethodDef; 78*c2c66affSColin Fincktypedef mdToken mdFieldDef; 79*c2c66affSColin Fincktypedef mdToken mdSignature; 80*c2c66affSColin Fincktypedef ULONG CorElementType; 81*c2c66affSColin Fincktypedef SIZE_T PCCOR_SIGNATURE; 82*c2c66affSColin Finck 83*c2c66affSColin Fincktypedef SIZE_T LPDEBUG_EVENT; 84*c2c66affSColin Finck 85*c2c66affSColin Fincktypedef SIZE_T LPSTARTUPINFOW; 86*c2c66affSColin Fincktypedef SIZE_T LPPROCESS_INFORMATION; 87*c2c66affSColin Finck 88*c2c66affSColin Finckcpp_quote("#endif") 89*c2c66affSColin Finck 90*c2c66affSColin Fincktypedef ULONG64 CORDB_ADDRESS; 91*c2c66affSColin Fincktypedef ULONG64 CORDB_REGISTER; 92*c2c66affSColin Finck 93*c2c66affSColin Fincktypedef UINT64 TASKID; 94*c2c66affSColin Fincktypedef DWORD CONNID; 95*c2c66affSColin Finck 96*c2c66affSColin Finck 97*c2c66affSColin Finckcpp_quote("#ifndef _COR_IL_MAP") 98*c2c66affSColin Finckcpp_quote("#define _COR_IL_MAP") 99*c2c66affSColin Finck 100*c2c66affSColin Fincktypedef struct _COR_IL_MAP 101*c2c66affSColin Finck{ 102*c2c66affSColin Finck ULONG32 oldOffset; 103*c2c66affSColin Finck ULONG32 newOffset; 104*c2c66affSColin Finck BOOL fAccurate; 105*c2c66affSColin Finck} COR_IL_MAP; 106*c2c66affSColin Finck 107*c2c66affSColin Finckcpp_quote("#endif /* _COR_IL_MAP */") 108*c2c66affSColin Finck 109*c2c66affSColin Finckcpp_quote("#ifndef _COR_DEBUG_IL_TO_NATIVE_MAP_") 110*c2c66affSColin Finckcpp_quote("#define _COR_DEBUG_IL_TO_NATIVE_MAP_") 111*c2c66affSColin Finck 112*c2c66affSColin Fincktypedef enum CorDebugIlToNativeMappingTypes 113*c2c66affSColin Finck{ 114*c2c66affSColin Finck NO_MAPPING = -1, 115*c2c66affSColin Finck PROLOG = -2, 116*c2c66affSColin Finck EPILOG = -3 117*c2c66affSColin Finck} CorDebugIlToNativeMappingTypes; 118*c2c66affSColin Finck 119*c2c66affSColin Fincktypedef struct COR_DEBUG_IL_TO_NATIVE_MAP 120*c2c66affSColin Finck{ 121*c2c66affSColin Finck ULONG32 ilOffset; 122*c2c66affSColin Finck ULONG32 nativeStartOffset; 123*c2c66affSColin Finck ULONG32 nativeEndOffset; 124*c2c66affSColin Finck} COR_DEBUG_IL_TO_NATIVE_MAP; 125*c2c66affSColin Finck 126*c2c66affSColin Finckcpp_quote("#endif /* _COR_DEBUG_IL_TO_NATIVE_MAP_ */") 127*c2c66affSColin Finck 128*c2c66affSColin Finck 129*c2c66affSColin Fincktypedef enum CorDebugThreadState 130*c2c66affSColin Finck{ 131*c2c66affSColin Finck THREAD_RUN, 132*c2c66affSColin Finck THREAD_SUSPEND 133*c2c66affSColin Finck} CorDebugThreadState; 134*c2c66affSColin Finck 135*c2c66affSColin Fincktypedef enum CorDebugCreateProcessFlags 136*c2c66affSColin Finck{ 137*c2c66affSColin Finck DEBUG_NO_SPECIAL_OPTIONS = 0x0000 138*c2c66affSColin Finck} CorDebugCreateProcessFlags; 139*c2c66affSColin Finck 140*c2c66affSColin Finck[ 141*c2c66affSColin Finck object, 142*c2c66affSColin Finck local, 143*c2c66affSColin Finck uuid(CC7BCAF7-8A68-11d2-983C-0000F808342D), 144*c2c66affSColin Finck pointer_default(unique) 145*c2c66affSColin Finck] 146*c2c66affSColin Finckinterface ICorDebugValue : IUnknown 147*c2c66affSColin Finck{ 148*c2c66affSColin Finck HRESULT GetType([out] CorElementType *pType); 149*c2c66affSColin Finck HRESULT GetSize([out] ULONG32 *pSize); 150*c2c66affSColin Finck HRESULT GetAddress([out] CORDB_ADDRESS *pAddress); 151*c2c66affSColin Finck HRESULT CreateBreakpoint([out] ICorDebugValueBreakpoint **ppBreakpoint); 152*c2c66affSColin Finck}; 153*c2c66affSColin Finck 154*c2c66affSColin Finck[ 155*c2c66affSColin Finck object, 156*c2c66affSColin Finck local, 157*c2c66affSColin Finck uuid(938c6d66-7fb6-4f69-b389-425b8987329b), 158*c2c66affSColin Finck pointer_default(unique) 159*c2c66affSColin Finck] 160*c2c66affSColin Finckinterface ICorDebugThread : IUnknown 161*c2c66affSColin Finck{ 162*c2c66affSColin Finck HRESULT GetProcess([out] ICorDebugProcess **ppProcess); 163*c2c66affSColin Finck HRESULT GetID([out] DWORD *pdwThreadId); 164*c2c66affSColin Finck HRESULT GetHandle([out] HTHREAD *phThreadHandle); 165*c2c66affSColin Finck HRESULT GetAppDomain([out] ICorDebugAppDomain **ppAppDomain); 166*c2c66affSColin Finck HRESULT SetDebugState([in] CorDebugThreadState state); 167*c2c66affSColin Finck HRESULT GetDebugState([out] CorDebugThreadState *pState); 168*c2c66affSColin Finck 169*c2c66affSColin Finck typedef enum CorDebugUserState 170*c2c66affSColin Finck { 171*c2c66affSColin Finck USER_STOP_REQUESTED = 0x01, 172*c2c66affSColin Finck USER_SUSPEND_REQUESTED = 0x02, 173*c2c66affSColin Finck USER_BACKGROUND = 0x04, 174*c2c66affSColin Finck USER_UNSTARTED = 0x08, 175*c2c66affSColin Finck USER_STOPPED = 0x10, 176*c2c66affSColin Finck USER_WAIT_SLEEP_JOIN = 0x20, 177*c2c66affSColin Finck USER_SUSPENDED = 0x40, 178*c2c66affSColin Finck 179*c2c66affSColin Finck USER_UNSAFE_POINT = 0x80, 180*c2c66affSColin Finck } CorDebugUserState; 181*c2c66affSColin Finck 182*c2c66affSColin Finck HRESULT GetUserState([out] CorDebugUserState *pState); 183*c2c66affSColin Finck HRESULT GetCurrentException([out] ICorDebugValue **ppExceptionObject); 184*c2c66affSColin Finck HRESULT ClearCurrentException(); 185*c2c66affSColin Finck HRESULT CreateStepper([out] ICorDebugStepper **ppStepper); 186*c2c66affSColin Finck HRESULT EnumerateChains([out] ICorDebugChainEnum **ppChains); 187*c2c66affSColin Finck HRESULT GetActiveChain([out] ICorDebugChain **ppChain); 188*c2c66affSColin Finck HRESULT GetActiveFrame([out] ICorDebugFrame **ppFrame); 189*c2c66affSColin Finck HRESULT GetRegisterSet([out] ICorDebugRegisterSet **ppRegisters); 190*c2c66affSColin Finck HRESULT CreateEval([out] ICorDebugEval **ppEval); 191*c2c66affSColin Finck HRESULT GetObject([out] ICorDebugValue **ppObject); 192*c2c66affSColin Finck}; 193*c2c66affSColin Finck 194*c2c66affSColin Finck[ 195*c2c66affSColin Finck object, 196*c2c66affSColin Finck local, 197*c2c66affSColin Finck uuid(3d6f5f62-7538-11d3-8d5b-00104b35e7ef), 198*c2c66affSColin Finck pointer_default(unique) 199*c2c66affSColin Finck] 200*c2c66affSColin Finck 201*c2c66affSColin Finckinterface ICorDebugController : IUnknown 202*c2c66affSColin Finck{ 203*c2c66affSColin Finck HRESULT Stop([in] DWORD dwTimeoutIgnored); 204*c2c66affSColin Finck HRESULT Continue([in] BOOL fIsOutOfBand); 205*c2c66affSColin Finck HRESULT IsRunning([out] BOOL *pbRunning); 206*c2c66affSColin Finck HRESULT HasQueuedCallbacks([in] ICorDebugThread *pThread, 207*c2c66affSColin Finck [out] BOOL *pbQueued); 208*c2c66affSColin Finck HRESULT EnumerateThreads([out] ICorDebugThreadEnum **ppThreads); 209*c2c66affSColin Finck HRESULT SetAllThreadsDebugState([in] CorDebugThreadState state, 210*c2c66affSColin Finck [in] ICorDebugThread *pExceptThisThread); 211*c2c66affSColin Finck HRESULT Detach(); 212*c2c66affSColin Finck HRESULT Terminate([in] UINT exitCode); 213*c2c66affSColin Finck HRESULT CanCommitChanges([in] ULONG cSnapshots, 214*c2c66affSColin Finck [in] ICorDebugEditAndContinueSnapshot *pSnapshots[], 215*c2c66affSColin Finck [out] ICorDebugErrorInfoEnum **pError); 216*c2c66affSColin Finck HRESULT CommitChanges([in] ULONG cSnapshots, 217*c2c66affSColin Finck [in] ICorDebugEditAndContinueSnapshot *pSnapshots[], 218*c2c66affSColin Finck [out] ICorDebugErrorInfoEnum **pError); 219*c2c66affSColin Finck}; 220*c2c66affSColin Finck 221*c2c66affSColin Finck[ 222*c2c66affSColin Finck object, 223*c2c66affSColin Finck local, 224*c2c66affSColin Finck uuid(3d6f5f64-7538-11d3-8d5b-00104b35e7ef), 225*c2c66affSColin Finck pointer_default(unique) 226*c2c66affSColin Finck] 227*c2c66affSColin Finckinterface ICorDebugProcess : ICorDebugController 228*c2c66affSColin Finck{ 229*c2c66affSColin Finck HRESULT GetID([out] DWORD *pdwProcessId); 230*c2c66affSColin Finck HRESULT GetHandle([out] HPROCESS *phProcessHandle); 231*c2c66affSColin Finck HRESULT GetThread([in] DWORD dwThreadId, [out] ICorDebugThread **ppThread); 232*c2c66affSColin Finck HRESULT EnumerateObjects([out] ICorDebugObjectEnum **ppObjects); 233*c2c66affSColin Finck HRESULT IsTransitionStub([in] CORDB_ADDRESS address, [out] BOOL *pbTransitionStub); 234*c2c66affSColin Finck HRESULT IsOSSuspended([in] DWORD threadID, [out] BOOL *pbSuspended); 235*c2c66affSColin Finck HRESULT GetThreadContext([in] DWORD threadID, [in] ULONG32 contextSize, 236*c2c66affSColin Finck [in, out] BYTE context[]); 237*c2c66affSColin Finck HRESULT SetThreadContext([in] DWORD threadID, [in] ULONG32 contextSize, [in] BYTE context[]); 238*c2c66affSColin Finck HRESULT ReadMemory([in] CORDB_ADDRESS address, [in] DWORD size, [out] BYTE buffer[], [out] SIZE_T *read); 239*c2c66affSColin Finck HRESULT WriteMemory([in] CORDB_ADDRESS address, [in] DWORD size, [in] BYTE buffer[], [out] SIZE_T *written); 240*c2c66affSColin Finck HRESULT ClearCurrentException([in] DWORD threadID); 241*c2c66affSColin Finck HRESULT EnableLogMessages([in]BOOL fOnOff); 242*c2c66affSColin Finck HRESULT ModifyLogSwitch([in] WCHAR *pLogSwitchName, 243*c2c66affSColin Finck [in]LONG lLevel); 244*c2c66affSColin Finck HRESULT EnumerateAppDomains([out] ICorDebugAppDomainEnum **ppAppDomains); 245*c2c66affSColin Finck HRESULT GetObject([out] ICorDebugValue **ppObject); 246*c2c66affSColin Finck HRESULT ThreadForFiberCookie([in] DWORD fiberCookie, [out] ICorDebugThread **ppThread); 247*c2c66affSColin Finck HRESULT GetHelperThreadID([out] DWORD *pThreadID); 248*c2c66affSColin Finck}; 249*c2c66affSColin Finck 250*c2c66affSColin Finck[ 251*c2c66affSColin Finck object, 252*c2c66affSColin Finck local, 253*c2c66affSColin Finck uuid(3d6f5f63-7538-11d3-8d5b-00104b35e7ef), 254*c2c66affSColin Finck pointer_default(unique) 255*c2c66affSColin Finck] 256*c2c66affSColin Finckinterface ICorDebugAppDomain : ICorDebugController 257*c2c66affSColin Finck{ 258*c2c66affSColin Finck HRESULT GetProcess([out] ICorDebugProcess **ppProcess); 259*c2c66affSColin Finck HRESULT EnumerateAssemblies([out] ICorDebugAssemblyEnum **ppAssemblies); 260*c2c66affSColin Finck HRESULT GetModuleFromMetaDataInterface([in] IUnknown *pIMetaData, 261*c2c66affSColin Finck [out] ICorDebugModule **ppModule); 262*c2c66affSColin Finck HRESULT EnumerateBreakpoints([out] ICorDebugBreakpointEnum **ppBreakpoints); 263*c2c66affSColin Finck HRESULT EnumerateSteppers([out] ICorDebugStepperEnum **ppSteppers); 264*c2c66affSColin Finck HRESULT IsAttached([out] BOOL *pbAttached); 265*c2c66affSColin Finck HRESULT GetName([in] ULONG32 cchName, [out] ULONG32 *pcchName, [out] WCHAR szName[]); 266*c2c66affSColin Finck HRESULT GetObject([out] ICorDebugValue **ppObject); 267*c2c66affSColin Finck HRESULT Attach(); 268*c2c66affSColin Finck HRESULT GetID([out] ULONG32 *pId); 269*c2c66affSColin Finck}; 270*c2c66affSColin Finck 271*c2c66affSColin Finck[ 272*c2c66affSColin Finck object, 273*c2c66affSColin Finck local, 274*c2c66affSColin Finck uuid(3d6f5f60-7538-11d3-8d5b-00104b35e7ef), 275*c2c66affSColin Finck pointer_default(unique) 276*c2c66affSColin Finck] 277*c2c66affSColin Finckinterface ICorDebugManagedCallback : IUnknown 278*c2c66affSColin Finck{ 279*c2c66affSColin Finck HRESULT Breakpoint([in] ICorDebugAppDomain *pAppDomain, 280*c2c66affSColin Finck [in] ICorDebugThread *pThread, 281*c2c66affSColin Finck [in] ICorDebugBreakpoint *pBreakpoint); 282*c2c66affSColin Finck 283*c2c66affSColin Finck typedef enum CorDebugStepReason 284*c2c66affSColin Finck { 285*c2c66affSColin Finck STEP_NORMAL, 286*c2c66affSColin Finck STEP_RETURN, 287*c2c66affSColin Finck STEP_CALL, 288*c2c66affSColin Finck STEP_EXCEPTION_FILTER, 289*c2c66affSColin Finck STEP_EXCEPTION_HANDLER, 290*c2c66affSColin Finck STEP_INTERCEPT, 291*c2c66affSColin Finck STEP_EXIT 292*c2c66affSColin Finck } CorDebugStepReason; 293*c2c66affSColin Finck 294*c2c66affSColin Finck HRESULT StepComplete([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread, 295*c2c66affSColin Finck [in] ICorDebugStepper *pStepper, [in] CorDebugStepReason reason); 296*c2c66affSColin Finck HRESULT Break([in] ICorDebugAppDomain *pAppDomain, 297*c2c66affSColin Finck [in] ICorDebugThread *thread); 298*c2c66affSColin Finck HRESULT Exception([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread, 299*c2c66affSColin Finck [in] BOOL unhandled); 300*c2c66affSColin Finck HRESULT EvalComplete([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread, 301*c2c66affSColin Finck [in] ICorDebugEval *pEval); 302*c2c66affSColin Finck HRESULT EvalException([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread, 303*c2c66affSColin Finck [in] ICorDebugEval *pEval); 304*c2c66affSColin Finck HRESULT CreateProcess([in] ICorDebugProcess *pProcess); 305*c2c66affSColin Finck HRESULT ExitProcess([in] ICorDebugProcess *pProcess); 306*c2c66affSColin Finck HRESULT CreateThread([in] ICorDebugAppDomain *pAppDomain,[in] ICorDebugThread *thread); 307*c2c66affSColin Finck HRESULT ExitThread([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *thread); 308*c2c66affSColin Finck HRESULT LoadModule([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugModule *pModule); 309*c2c66affSColin Finck HRESULT UnloadModule([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugModule *pModule); 310*c2c66affSColin Finck HRESULT LoadClass([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugClass *c); 311*c2c66affSColin Finck HRESULT UnloadClass([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugClass *c); 312*c2c66affSColin Finck HRESULT DebuggerError([in] ICorDebugProcess *pProcess, [in] HRESULT errorHR, 313*c2c66affSColin Finck [in] DWORD errorCode); 314*c2c66affSColin Finck 315*c2c66affSColin Finck typedef enum LoggingLevelEnum 316*c2c66affSColin Finck { 317*c2c66affSColin Finck LTraceLevel0 = 0, 318*c2c66affSColin Finck LTraceLevel1, 319*c2c66affSColin Finck LTraceLevel2, 320*c2c66affSColin Finck LTraceLevel3, 321*c2c66affSColin Finck LTraceLevel4, 322*c2c66affSColin Finck LStatusLevel0 = 20, 323*c2c66affSColin Finck LStatusLevel1, 324*c2c66affSColin Finck LStatusLevel2, 325*c2c66affSColin Finck LStatusLevel3, 326*c2c66affSColin Finck LStatusLevel4, 327*c2c66affSColin Finck LWarningLevel = 40, 328*c2c66affSColin Finck LErrorLevel = 50, 329*c2c66affSColin Finck LPanicLevel = 100 330*c2c66affSColin Finck } LoggingLevelEnum; 331*c2c66affSColin Finck 332*c2c66affSColin Finck typedef enum LogSwitchCallReason 333*c2c66affSColin Finck { 334*c2c66affSColin Finck SWITCH_CREATE, 335*c2c66affSColin Finck SWITCH_MODIFY, 336*c2c66affSColin Finck SWITCH_DELETE 337*c2c66affSColin Finck } LogSwitchCallReason; 338*c2c66affSColin Finck 339*c2c66affSColin Finck HRESULT LogMessage([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread, 340*c2c66affSColin Finck [in] LONG lLevel, [in] WCHAR *pLogSwitchName, [in] WCHAR *pMessage); 341*c2c66affSColin Finck HRESULT LogSwitch([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread, 342*c2c66affSColin Finck [in] LONG lLevel, [in] ULONG ulReason, [in] WCHAR *pLogSwitchName, 343*c2c66affSColin Finck [in] WCHAR *pParentName); 344*c2c66affSColin Finck HRESULT CreateAppDomain([in] ICorDebugProcess *pProcess, [in] ICorDebugAppDomain *pAppDomain); 345*c2c66affSColin Finck HRESULT ExitAppDomain([in] ICorDebugProcess *pProcess, [in] ICorDebugAppDomain *pAppDomain); 346*c2c66affSColin Finck HRESULT LoadAssembly([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugAssembly *pAssembly); 347*c2c66affSColin Finck HRESULT UnloadAssembly([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugAssembly *pAssembly); 348*c2c66affSColin Finck HRESULT ControlCTrap([in] ICorDebugProcess *pProcess); 349*c2c66affSColin Finck HRESULT NameChange([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread); 350*c2c66affSColin Finck HRESULT UpdateModuleSymbols([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugModule *pModule, 351*c2c66affSColin Finck [in] IStream *pSymbolStream); 352*c2c66affSColin Finck HRESULT EditAndContinueRemap([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread, 353*c2c66affSColin Finck [in] ICorDebugFunction *pFunction, [in] BOOL fAccurate); 354*c2c66affSColin Finck 355*c2c66affSColin Finck HRESULT BreakpointSetError([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread, 356*c2c66affSColin Finck [in] ICorDebugBreakpoint *pBreakpoint, [in] DWORD dwError); 357*c2c66affSColin Finck}; 358*c2c66affSColin Finck 359*c2c66affSColin Finck[ 360*c2c66affSColin Finck object, 361*c2c66affSColin Finck local, 362*c2c66affSColin Finck uuid(250E5EEA-DB5C-4C76-B6F3-8C46F12E3203), 363*c2c66affSColin Finck pointer_default(unique) 364*c2c66affSColin Finck] 365*c2c66affSColin Finckinterface ICorDebugManagedCallback2 : IUnknown 366*c2c66affSColin Finck{ 367*c2c66affSColin Finck HRESULT FunctionRemapOpportunity([in] ICorDebugAppDomain *pAppDomain, 368*c2c66affSColin Finck [in] ICorDebugThread *pThread, [in] ICorDebugFunction *pOldFunction, 369*c2c66affSColin Finck [in] ICorDebugFunction *pNewFunction, [in] ULONG32 oldILOffset); 370*c2c66affSColin Finck 371*c2c66affSColin Finck HRESULT CreateConnection([in] ICorDebugProcess *pProcess, [in] CONNID dwConnectionId, 372*c2c66affSColin Finck [in] WCHAR *pConnName); 373*c2c66affSColin Finck 374*c2c66affSColin Finck HRESULT ChangeConnection([in] ICorDebugProcess *pProcess, [in] CONNID dwConnectionId ); 375*c2c66affSColin Finck 376*c2c66affSColin Finck HRESULT DestroyConnection([in] ICorDebugProcess *pProcess, [in] CONNID dwConnectionId ); 377*c2c66affSColin Finck 378*c2c66affSColin Finck 379*c2c66affSColin Finck typedef enum CorDebugExceptionCallbackType 380*c2c66affSColin Finck { 381*c2c66affSColin Finck DEBUG_EXCEPTION_FIRST_CHANCE = 1, 382*c2c66affSColin Finck DEBUG_EXCEPTION_USER_FIRST_CHANCE = 2, 383*c2c66affSColin Finck DEBUG_EXCEPTION_CATCH_HANDLER_FOUND = 3, 384*c2c66affSColin Finck DEBUG_EXCEPTION_UNHANDLED = 4 385*c2c66affSColin Finck } CorDebugExceptionCallbackType; 386*c2c66affSColin Finck 387*c2c66affSColin Finck typedef enum CorDebugExceptionFlags 388*c2c66affSColin Finck { 389*c2c66affSColin Finck DEBUG_EXCEPTION_CAN_BE_INTERCEPTED = 0x0001 390*c2c66affSColin Finck } CorDebugExceptionFlags; 391*c2c66affSColin Finck 392*c2c66affSColin Finck HRESULT Exception( [in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread, 393*c2c66affSColin Finck [in] ICorDebugFrame *pFrame, [in] ULONG32 nOffset, 394*c2c66affSColin Finck [in] CorDebugExceptionCallbackType dwEventType, [in] DWORD dwFlags ); 395*c2c66affSColin Finck 396*c2c66affSColin Finck typedef enum CorDebugExceptionUnwindCallbackType 397*c2c66affSColin Finck { 398*c2c66affSColin Finck DEBUG_EXCEPTION_UNWIND_BEGIN = 1, 399*c2c66affSColin Finck DEBUG_EXCEPTION_INTERCEPTED = 2 400*c2c66affSColin Finck } CorDebugExceptionUnwindCallbackType; 401*c2c66affSColin Finck 402*c2c66affSColin Finck HRESULT ExceptionUnwind( [in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread, 403*c2c66affSColin Finck [in] CorDebugExceptionUnwindCallbackType dwEventType, 404*c2c66affSColin Finck [in] DWORD dwFlags ); 405*c2c66affSColin Finck 406*c2c66affSColin Finck HRESULT FunctionRemapComplete([in] ICorDebugAppDomain *pAppDomain, 407*c2c66affSColin Finck [in] ICorDebugThread *pThread, [in] ICorDebugFunction *pFunction); 408*c2c66affSColin Finck 409*c2c66affSColin Finck HRESULT MDANotification([in] ICorDebugController * pController, 410*c2c66affSColin Finck [in] ICorDebugThread *pThread, [in] ICorDebugMDA * pMDA 411*c2c66affSColin Finck ); 412*c2c66affSColin Finck 413*c2c66affSColin Finck}; 414*c2c66affSColin Finck[ 415*c2c66affSColin Finck object, 416*c2c66affSColin Finck local, 417*c2c66affSColin Finck uuid(3d6f5f61-7538-11d3-8d5b-00104b35e7ef), 418*c2c66affSColin Finck pointer_default(unique) 419*c2c66affSColin Finck] 420*c2c66affSColin Finckinterface ICorDebug : IUnknown 421*c2c66affSColin Finck{ 422*c2c66affSColin Finck HRESULT Initialize(); 423*c2c66affSColin Finck HRESULT Terminate(); 424*c2c66affSColin Finck HRESULT SetManagedHandler([in] ICorDebugManagedCallback *pCallback); 425*c2c66affSColin Finck HRESULT SetUnmanagedHandler([in] ICorDebugUnmanagedCallback *pCallback); 426*c2c66affSColin Finck HRESULT CreateProcess([in] LPCWSTR lpApplicationName, [in] LPWSTR lpCommandLine, 427*c2c66affSColin Finck [in] LPSECURITY_ATTRIBUTES lpProcessAttributes, 428*c2c66affSColin Finck [in] LPSECURITY_ATTRIBUTES lpThreadAttributes, 429*c2c66affSColin Finck [in] BOOL bInheritHandles, [in] DWORD dwCreationFlags, 430*c2c66affSColin Finck [in] PVOID lpEnvironment, [in] LPCWSTR lpCurrentDirectory, 431*c2c66affSColin Finck [in] LPSTARTUPINFOW lpStartupInfo, 432*c2c66affSColin Finck [in] LPPROCESS_INFORMATION lpProcessInformation, 433*c2c66affSColin Finck [in] CorDebugCreateProcessFlags debuggingFlags, 434*c2c66affSColin Finck [out] ICorDebugProcess **ppProcess); 435*c2c66affSColin Finck 436*c2c66affSColin Finck HRESULT DebugActiveProcess([in] DWORD id, [in] BOOL win32Attach, 437*c2c66affSColin Finck [out] ICorDebugProcess **ppProcess); 438*c2c66affSColin Finck HRESULT EnumerateProcesses([out] ICorDebugProcessEnum **ppProcess); 439*c2c66affSColin Finck HRESULT GetProcess([in] DWORD dwProcessId, [out] ICorDebugProcess **ppProcess); 440*c2c66affSColin Finck HRESULT CanLaunchOrAttach([in] DWORD dwProcessId, [in] BOOL win32DebuggingEnabled); 441*c2c66affSColin Finck}; 442*c2c66affSColin Finck 443*c2c66affSColin Finck 444*c2c66affSColin Finck[ 445*c2c66affSColin Finck object, 446*c2c66affSColin Finck local, 447*c2c66affSColin Finck uuid(CC7BCAE8-8A68-11d2-983C-0000F808342D), 448*c2c66affSColin Finck pointer_default(unique) 449*c2c66affSColin Finck] 450*c2c66affSColin Finckinterface ICorDebugBreakpoint : IUnknown 451*c2c66affSColin Finck{ 452*c2c66affSColin Finck HRESULT Activate([in] BOOL bActive); 453*c2c66affSColin Finck HRESULT IsActive([out] BOOL *pbActive); 454*c2c66affSColin Finck}; 455*c2c66affSColin Finck 456*c2c66affSColin Finck[ 457*c2c66affSColin Finck object, 458*c2c66affSColin Finck local, 459*c2c66affSColin Finck uuid(CC7BCAE9-8A68-11d2-983C-0000F808342D), 460*c2c66affSColin Finck pointer_default(unique) 461*c2c66affSColin Finck] 462*c2c66affSColin Finckinterface ICorDebugFunctionBreakpoint : ICorDebugBreakpoint 463*c2c66affSColin Finck{ 464*c2c66affSColin Finck HRESULT GetFunction([out] ICorDebugFunction **ppFunction); 465*c2c66affSColin Finck HRESULT GetOffset([out] ULONG32 *pnOffset); 466*c2c66affSColin Finck}; 467*c2c66affSColin Finck 468*c2c66affSColin Finck[ 469*c2c66affSColin Finck object, 470*c2c66affSColin Finck local, 471*c2c66affSColin Finck uuid(CC7BCAEA-8A68-11d2-983C-0000F808342D), 472*c2c66affSColin Finck pointer_default(unique) 473*c2c66affSColin Finck] 474*c2c66affSColin Finckinterface ICorDebugModuleBreakpoint : ICorDebugBreakpoint 475*c2c66affSColin Finck{ 476*c2c66affSColin Finck HRESULT GetModule([out] ICorDebugModule **ppModule); 477*c2c66affSColin Finck}; 478*c2c66affSColin Finck 479*c2c66affSColin Finck[ 480*c2c66affSColin Finck object, 481*c2c66affSColin Finck local, 482*c2c66affSColin Finck uuid(CC7BCAEB-8A68-11d2-983C-0000F808342D), 483*c2c66affSColin Finck pointer_default(unique) 484*c2c66affSColin Finck] 485*c2c66affSColin Finckinterface ICorDebugValueBreakpoint : ICorDebugBreakpoint 486*c2c66affSColin Finck{ 487*c2c66affSColin Finck HRESULT GetValue([out] ICorDebugValue **ppValue); 488*c2c66affSColin Finck}; 489*c2c66affSColin Finck 490*c2c66affSColin Finck[ 491*c2c66affSColin Finck object, 492*c2c66affSColin Finck local, 493*c2c66affSColin Finck uuid(CC7BCAEC-8A68-11d2-983C-0000F808342D), 494*c2c66affSColin Finck pointer_default(unique) 495*c2c66affSColin Finck] 496*c2c66affSColin Finckinterface ICorDebugStepper : IUnknown 497*c2c66affSColin Finck{ 498*c2c66affSColin Finck HRESULT IsActive([out] BOOL *pbActive); 499*c2c66affSColin Finck HRESULT Deactivate(); 500*c2c66affSColin Finck 501*c2c66affSColin Finck typedef enum CorDebugIntercept 502*c2c66affSColin Finck { 503*c2c66affSColin Finck INTERCEPT_NONE = 0x0 , 504*c2c66affSColin Finck INTERCEPT_CLASS_INIT = 0x01, 505*c2c66affSColin Finck INTERCEPT_EXCEPTION_FILTER = 0x02, 506*c2c66affSColin Finck INTERCEPT_SECURITY = 0x04, 507*c2c66affSColin Finck INTERCEPT_CONTEXT_POLICY = 0x08, 508*c2c66affSColin Finck INTERCEPT_INTERCEPTION = 0x10, 509*c2c66affSColin Finck INTERCEPT_ALL = 0xffff 510*c2c66affSColin Finck } CorDebugIntercept; 511*c2c66affSColin Finck 512*c2c66affSColin Finck HRESULT SetInterceptMask([in] CorDebugIntercept mask); 513*c2c66affSColin Finck 514*c2c66affSColin Finck typedef enum CorDebugUnmappedStop 515*c2c66affSColin Finck { 516*c2c66affSColin Finck STOP_NONE = 0x0, 517*c2c66affSColin Finck STOP_PROLOG = 0x01, 518*c2c66affSColin Finck STOP_EPILOG = 0x02, 519*c2c66affSColin Finck STOP_NO_MAPPING_INFO = 0x04, 520*c2c66affSColin Finck STOP_OTHER_UNMAPPED = 0x08, 521*c2c66affSColin Finck STOP_UNMANAGED = 0x10, 522*c2c66affSColin Finck 523*c2c66affSColin Finck STOP_ALL = 0xffff, 524*c2c66affSColin Finck 525*c2c66affSColin Finck } CorDebugUnmappedStop; 526*c2c66affSColin Finck 527*c2c66affSColin Finck HRESULT SetUnmappedStopMask([in] CorDebugUnmappedStop mask); 528*c2c66affSColin Finck HRESULT Step([in] BOOL bStepIn); 529*c2c66affSColin Finck 530*c2c66affSColin Finck typedef struct COR_DEBUG_STEP_RANGE 531*c2c66affSColin Finck { 532*c2c66affSColin Finck ULONG32 startOffset, endOffset; 533*c2c66affSColin Finck } COR_DEBUG_STEP_RANGE; 534*c2c66affSColin Finck 535*c2c66affSColin Finck HRESULT StepRange([in] BOOL bStepIn, [in] COR_DEBUG_STEP_RANGE ranges[], [in] ULONG32 cRangeCount); 536*c2c66affSColin Finck HRESULT StepOut(); 537*c2c66affSColin Finck HRESULT SetRangeIL([in] BOOL bIL); 538*c2c66affSColin Finck}; 539*c2c66affSColin Finck 540*c2c66affSColin Finck[ 541*c2c66affSColin Finck object, 542*c2c66affSColin Finck local, 543*c2c66affSColin Finck uuid(CC7BCB01-8A68-11d2-983C-0000F808342D), 544*c2c66affSColin Finck pointer_default(unique) 545*c2c66affSColin Finck] 546*c2c66affSColin Finckinterface ICorDebugEnum : IUnknown 547*c2c66affSColin Finck{ 548*c2c66affSColin Finck HRESULT Skip([in] ULONG celt); 549*c2c66affSColin Finck HRESULT Reset(); 550*c2c66affSColin Finck HRESULT Clone([out] ICorDebugEnum **ppEnum); 551*c2c66affSColin Finck HRESULT GetCount([out] ULONG *pcelt); 552*c2c66affSColin Finck}; 553*c2c66affSColin Finck 554*c2c66affSColin Finck[ 555*c2c66affSColin Finck object, 556*c2c66affSColin Finck local, 557*c2c66affSColin Finck uuid(63ca1b24-4359-4883-bd57-13f815f58744), 558*c2c66affSColin Finck pointer_default(unique) 559*c2c66affSColin Finck] 560*c2c66affSColin Finck 561*c2c66affSColin Finckinterface ICorDebugAppDomainEnum : ICorDebugEnum 562*c2c66affSColin Finck{ 563*c2c66affSColin Finck HRESULT Next([in] ULONG celt, [out] ICorDebugAppDomain *values[], [out] ULONG *pceltFetched); 564*c2c66affSColin Finck 565*c2c66affSColin Finck}; 566*c2c66affSColin Finck 567*c2c66affSColin Finck[ 568*c2c66affSColin Finck object, 569*c2c66affSColin Finck local, 570*c2c66affSColin Finck uuid(4a2a1ec9-85ec-4bfb-9f15-a89fdfe0fe83), 571*c2c66affSColin Finck pointer_default(unique) 572*c2c66affSColin Finck] 573*c2c66affSColin Finckinterface ICorDebugAssemblyEnum : ICorDebugEnum 574*c2c66affSColin Finck{ 575*c2c66affSColin Finck HRESULT Next([in] ULONG celt, [out] ICorDebugAssembly *values[], [out] ULONG *pceltFetched); 576*c2c66affSColin Finck 577*c2c66affSColin Finck}; 578*c2c66affSColin Finck 579*c2c66affSColin Finck[ 580*c2c66affSColin Finck object, 581*c2c66affSColin Finck local, 582*c2c66affSColin Finck uuid(CC7BCB03-8A68-11d2-983C-0000F808342D), 583*c2c66affSColin Finck pointer_default(unique) 584*c2c66affSColin Finck] 585*c2c66affSColin Finckinterface ICorDebugBreakpointEnum : ICorDebugEnum 586*c2c66affSColin Finck{ 587*c2c66affSColin Finck HRESULT Next([in] ULONG celt, [out] ICorDebugBreakpoint *breakpoints[], [out] ULONG *pceltFetched); 588*c2c66affSColin Finck}; 589*c2c66affSColin Finck 590*c2c66affSColin Finck[ 591*c2c66affSColin Finck object, 592*c2c66affSColin Finck local, 593*c2c66affSColin Finck uuid(CC7BCB08-8A68-11d2-983C-0000F808342D), 594*c2c66affSColin Finck pointer_default(unique) 595*c2c66affSColin Finck] 596*c2c66affSColin Finckinterface ICorDebugChainEnum : ICorDebugEnum 597*c2c66affSColin Finck{ 598*c2c66affSColin Finck HRESULT Next([in] ULONG celt, [out] ICorDebugChain *chains[], [out] ULONG *pceltFetched); 599*c2c66affSColin Finck}; 600*c2c66affSColin Finck 601*c2c66affSColin Finck[ 602*c2c66affSColin Finck object, 603*c2c66affSColin Finck local, 604*c2c66affSColin Finck uuid(F0E18809-72B5-11d2-976F-00A0C9B4D50C), 605*c2c66affSColin Finck pointer_default(unique) 606*c2c66affSColin Finck] 607*c2c66affSColin Finckinterface ICorDebugErrorInfoEnum : ICorDebugEnum 608*c2c66affSColin Finck{ 609*c2c66affSColin Finck HRESULT Next([in] ULONG celt, [out] ICorDebugEditAndContinueErrorInfo *errors[], 610*c2c66affSColin Finck [out] ULONG *pceltFetched); 611*c2c66affSColin Finck}; 612*c2c66affSColin Finck 613*c2c66affSColin Finck[ 614*c2c66affSColin Finck object, 615*c2c66affSColin Finck local, 616*c2c66affSColin Finck uuid(CC7BCB07-8A68-11d2-983C-0000F808342D), 617*c2c66affSColin Finck pointer_default(unique) 618*c2c66affSColin Finck] 619*c2c66affSColin Finckinterface ICorDebugFrameEnum : ICorDebugEnum 620*c2c66affSColin Finck{ 621*c2c66affSColin Finck HRESULT Next([in] ULONG celt, [out] ICorDebugFrame *frames[], [out] ULONG *pceltFetched); 622*c2c66affSColin Finck}; 623*c2c66affSColin Finck 624*c2c66affSColin Finck[ 625*c2c66affSColin Finck object, 626*c2c66affSColin Finck local, 627*c2c66affSColin Finck uuid(CC7BCB09-8A68-11d2-983C-0000F808342D), 628*c2c66affSColin Finck pointer_default(unique) 629*c2c66affSColin Finck] 630*c2c66affSColin Finckinterface ICorDebugModuleEnum : ICorDebugEnum 631*c2c66affSColin Finck{ 632*c2c66affSColin Finck HRESULT Next([in] ULONG celt, [out] ICorDebugModule *modules[], [out] ULONG *pceltFetched); 633*c2c66affSColin Finck}; 634*c2c66affSColin Finck 635*c2c66affSColin Finck[ 636*c2c66affSColin Finck object, 637*c2c66affSColin Finck local, 638*c2c66affSColin Finck uuid(CC7BCB02-8A68-11d2-983C-0000F808342D), 639*c2c66affSColin Finck pointer_default(unique) 640*c2c66affSColin Finck] 641*c2c66affSColin Finckinterface ICorDebugObjectEnum : ICorDebugEnum 642*c2c66affSColin Finck{ 643*c2c66affSColin Finck HRESULT Next([in] ULONG celt, [out] CORDB_ADDRESS objects[], [out] ULONG *pceltFetched); 644*c2c66affSColin Finck}; 645*c2c66affSColin Finck 646*c2c66affSColin Finck[ 647*c2c66affSColin Finck object, 648*c2c66affSColin Finck local, 649*c2c66affSColin Finck uuid(CC7BCB05-8A68-11d2-983C-0000F808342D), 650*c2c66affSColin Finck pointer_default(unique) 651*c2c66affSColin Finck] 652*c2c66affSColin Finckinterface ICorDebugProcessEnum : ICorDebugEnum 653*c2c66affSColin Finck{ 654*c2c66affSColin Finck HRESULT Next([in] ULONG celt, [out] ICorDebugProcess *processes[], [out] ULONG *pceltFetched); 655*c2c66affSColin Finck}; 656*c2c66affSColin Finck 657*c2c66affSColin Finck[ 658*c2c66affSColin Finck object, 659*c2c66affSColin Finck local, 660*c2c66affSColin Finck uuid(CC7BCB04-8A68-11d2-983C-0000F808342D), 661*c2c66affSColin Finck pointer_default(unique) 662*c2c66affSColin Finck] 663*c2c66affSColin Finckinterface ICorDebugStepperEnum : ICorDebugEnum 664*c2c66affSColin Finck{ 665*c2c66affSColin Finck HRESULT Next([in] ULONG celt, [out] ICorDebugStepper *steppers[], [out] ULONG *pceltFetched); 666*c2c66affSColin Finck}; 667*c2c66affSColin Finck 668*c2c66affSColin Finck[ 669*c2c66affSColin Finck object, 670*c2c66affSColin Finck local, 671*c2c66affSColin Finck uuid(CC7BCB06-8A68-11d2-983C-0000F808342D), 672*c2c66affSColin Finck pointer_default(unique) 673*c2c66affSColin Finck] 674*c2c66affSColin Finckinterface ICorDebugThreadEnum : ICorDebugEnum 675*c2c66affSColin Finck{ 676*c2c66affSColin Finck HRESULT Next([in] ULONG celt, [out] ICorDebugThread *threads[], [out] ULONG *pceltFetched); 677*c2c66affSColin Finck}; 678*c2c66affSColin Finck 679*c2c66affSColin Finck[ 680*c2c66affSColin Finck object, 681*c2c66affSColin Finck local, 682*c2c66affSColin Finck uuid(CC7BCAEE-8A68-11d2-983C-0000F808342D), 683*c2c66affSColin Finck pointer_default(unique) 684*c2c66affSColin Finck] 685*c2c66affSColin Finckinterface ICorDebugChain : IUnknown 686*c2c66affSColin Finck{ 687*c2c66affSColin Finck HRESULT GetThread([out] ICorDebugThread **ppThread); 688*c2c66affSColin Finck HRESULT GetStackRange([out] CORDB_ADDRESS *pStart, [out] CORDB_ADDRESS *pEnd); 689*c2c66affSColin Finck HRESULT GetContext([out] ICorDebugContext **ppContext); 690*c2c66affSColin Finck HRESULT GetCaller([out] ICorDebugChain **ppChain); 691*c2c66affSColin Finck HRESULT GetCallee([out] ICorDebugChain **ppChain); 692*c2c66affSColin Finck HRESULT GetPrevious([out] ICorDebugChain **ppChain); 693*c2c66affSColin Finck HRESULT GetNext([out] ICorDebugChain **ppChain); 694*c2c66affSColin Finck HRESULT IsManaged([out] BOOL *pManaged); 695*c2c66affSColin Finck HRESULT EnumerateFrames([out] ICorDebugFrameEnum **ppFrames); 696*c2c66affSColin Finck HRESULT GetActiveFrame([out] ICorDebugFrame **ppFrame); 697*c2c66affSColin Finck HRESULT GetRegisterSet([out] ICorDebugRegisterSet **ppRegisters); 698*c2c66affSColin Finck typedef enum CorDebugChainReason 699*c2c66affSColin Finck { 700*c2c66affSColin Finck CHAIN_NONE = 0x000, 701*c2c66affSColin Finck CHAIN_CLASS_INIT = 0x001, 702*c2c66affSColin Finck CHAIN_EXCEPTION_FILTER = 0x002, 703*c2c66affSColin Finck CHAIN_SECURITY = 0x004, 704*c2c66affSColin Finck CHAIN_CONTEXT_POLICY = 0x008, 705*c2c66affSColin Finck CHAIN_INTERCEPTION = 0x010, 706*c2c66affSColin Finck CHAIN_PROCESS_START = 0x020, 707*c2c66affSColin Finck CHAIN_THREAD_START = 0x040, 708*c2c66affSColin Finck CHAIN_ENTER_MANAGED = 0x080, 709*c2c66affSColin Finck CHAIN_ENTER_UNMANAGED = 0x100, 710*c2c66affSColin Finck CHAIN_DEBUGGER_EVAL = 0x200, 711*c2c66affSColin Finck CHAIN_CONTEXT_SWITCH = 0x400, 712*c2c66affSColin Finck CHAIN_FUNC_EVAL = 0x800, 713*c2c66affSColin Finck } CorDebugChainReason; 714*c2c66affSColin Finck 715*c2c66affSColin Finck HRESULT GetReason([out] CorDebugChainReason *pReason); 716*c2c66affSColin Finck}; 717*c2c66affSColin Finck 718*c2c66affSColin Finck[ 719*c2c66affSColin Finck object, 720*c2c66affSColin Finck local, 721*c2c66affSColin Finck uuid(CC7BCAEF-8A68-11d2-983C-0000F808342D), 722*c2c66affSColin Finck pointer_default(unique) 723*c2c66affSColin Finck] 724*c2c66affSColin Finckinterface ICorDebugFrame : IUnknown 725*c2c66affSColin Finck{ 726*c2c66affSColin Finck HRESULT GetChain([out] ICorDebugChain **ppChain); 727*c2c66affSColin Finck HRESULT GetCode([out] ICorDebugCode **ppCode); 728*c2c66affSColin Finck HRESULT GetFunction([out] ICorDebugFunction **ppFunction); 729*c2c66affSColin Finck HRESULT GetFunctionToken([out] mdMethodDef *pToken); 730*c2c66affSColin Finck HRESULT GetStackRange([out] CORDB_ADDRESS *pStart, [out] CORDB_ADDRESS *pEnd); 731*c2c66affSColin Finck HRESULT GetCaller([out] ICorDebugFrame **ppFrame); 732*c2c66affSColin Finck HRESULT GetCallee([out] ICorDebugFrame **ppFrame); 733*c2c66affSColin Finck HRESULT CreateStepper([out] ICorDebugStepper **ppStepper); 734*c2c66affSColin Finck}; 735*c2c66affSColin Finck 736*c2c66affSColin Finck 737*c2c66affSColin Finck[ 738*c2c66affSColin Finck object, 739*c2c66affSColin Finck local, 740*c2c66affSColin Finck uuid(CC7BCB0B-8A68-11d2-983C-0000F808342D), 741*c2c66affSColin Finck pointer_default(unique) 742*c2c66affSColin Finck] 743*c2c66affSColin Finckinterface ICorDebugRegisterSet : IUnknown 744*c2c66affSColin Finck{ 745*c2c66affSColin Finck typedef enum CorDebugRegister 746*c2c66affSColin Finck { 747*c2c66affSColin Finck REGISTER_INSTRUCTION_POINTER = 0, 748*c2c66affSColin Finck REGISTER_STACK_POINTER, 749*c2c66affSColin Finck REGISTER_FRAME_POINTER, 750*c2c66affSColin Finck 751*c2c66affSColin Finck REGISTER_X86_EIP = 0, 752*c2c66affSColin Finck REGISTER_X86_ESP, 753*c2c66affSColin Finck REGISTER_X86_EBP, 754*c2c66affSColin Finck 755*c2c66affSColin Finck REGISTER_X86_EAX, 756*c2c66affSColin Finck REGISTER_X86_ECX, 757*c2c66affSColin Finck REGISTER_X86_EDX, 758*c2c66affSColin Finck REGISTER_X86_EBX, 759*c2c66affSColin Finck 760*c2c66affSColin Finck REGISTER_X86_ESI, 761*c2c66affSColin Finck REGISTER_X86_EDI, 762*c2c66affSColin Finck 763*c2c66affSColin Finck REGISTER_X86_FPSTACK_0, 764*c2c66affSColin Finck REGISTER_X86_FPSTACK_1, 765*c2c66affSColin Finck REGISTER_X86_FPSTACK_2, 766*c2c66affSColin Finck REGISTER_X86_FPSTACK_3, 767*c2c66affSColin Finck REGISTER_X86_FPSTACK_4, 768*c2c66affSColin Finck REGISTER_X86_FPSTACK_5, 769*c2c66affSColin Finck REGISTER_X86_FPSTACK_6, 770*c2c66affSColin Finck REGISTER_X86_FPSTACK_7, 771*c2c66affSColin Finck 772*c2c66affSColin Finck REGISTER_AMD64_RIP = 0, 773*c2c66affSColin Finck REGISTER_AMD64_RSP, 774*c2c66affSColin Finck REGISTER_AMD64_RBP, 775*c2c66affSColin Finck 776*c2c66affSColin Finck REGISTER_AMD64_RAX, 777*c2c66affSColin Finck REGISTER_AMD64_RCX, 778*c2c66affSColin Finck REGISTER_AMD64_RDX, 779*c2c66affSColin Finck REGISTER_AMD64_RBX, 780*c2c66affSColin Finck 781*c2c66affSColin Finck REGISTER_AMD64_RSI, 782*c2c66affSColin Finck REGISTER_AMD64_RDI, 783*c2c66affSColin Finck 784*c2c66affSColin Finck REGISTER_AMD64_R8, 785*c2c66affSColin Finck REGISTER_AMD64_R9, 786*c2c66affSColin Finck REGISTER_AMD64_R10, 787*c2c66affSColin Finck REGISTER_AMD64_R11, 788*c2c66affSColin Finck REGISTER_AMD64_R12, 789*c2c66affSColin Finck REGISTER_AMD64_R13, 790*c2c66affSColin Finck REGISTER_AMD64_R14, 791*c2c66affSColin Finck REGISTER_AMD64_R15, 792*c2c66affSColin Finck 793*c2c66affSColin Finck REGISTER_AMD64_XMM0, 794*c2c66affSColin Finck REGISTER_AMD64_XMM1, 795*c2c66affSColin Finck REGISTER_AMD64_XMM2, 796*c2c66affSColin Finck REGISTER_AMD64_XMM3, 797*c2c66affSColin Finck REGISTER_AMD64_XMM4, 798*c2c66affSColin Finck REGISTER_AMD64_XMM5, 799*c2c66affSColin Finck REGISTER_AMD64_XMM6, 800*c2c66affSColin Finck REGISTER_AMD64_XMM7, 801*c2c66affSColin Finck REGISTER_AMD64_XMM8, 802*c2c66affSColin Finck REGISTER_AMD64_XMM9, 803*c2c66affSColin Finck REGISTER_AMD64_XMM10, 804*c2c66affSColin Finck REGISTER_AMD64_XMM11, 805*c2c66affSColin Finck REGISTER_AMD64_XMM12, 806*c2c66affSColin Finck REGISTER_AMD64_XMM13, 807*c2c66affSColin Finck REGISTER_AMD64_XMM14, 808*c2c66affSColin Finck REGISTER_AMD64_XMM15, 809*c2c66affSColin Finck 810*c2c66affSColin Finck REGISTER_IA64_BSP = REGISTER_FRAME_POINTER, 811*c2c66affSColin Finck 812*c2c66affSColin Finck REGISTER_IA64_R0 = REGISTER_IA64_BSP + 1, 813*c2c66affSColin Finck REGISTER_IA64_F0 = REGISTER_IA64_R0 + 128, 814*c2c66affSColin Finck 815*c2c66affSColin Finck } CorDebugRegister; 816*c2c66affSColin Finck 817*c2c66affSColin Finck HRESULT GetRegistersAvailable([out] ULONG64 *pAvailable); 818*c2c66affSColin Finck 819*c2c66affSColin Finck HRESULT GetRegisters([in] ULONG64 mask, [in] ULONG32 regCount, 820*c2c66affSColin Finck [out] CORDB_REGISTER regBuffer[]); 821*c2c66affSColin Finck HRESULT SetRegisters([in] ULONG64 mask, [in] ULONG32 regCount, 822*c2c66affSColin Finck [in] CORDB_REGISTER regBuffer[]); 823*c2c66affSColin Finck HRESULT GetThreadContext([in] ULONG32 contextSize, [in, out] BYTE context[]); 824*c2c66affSColin Finck HRESULT SetThreadContext([in] ULONG32 contextSize, [in] BYTE context[]); 825*c2c66affSColin Finck} 826*c2c66affSColin Finck 827*c2c66affSColin Finck[ 828*c2c66affSColin Finck object, 829*c2c66affSColin Finck local, 830*c2c66affSColin Finck uuid(CC7BCAF6-8A68-11d2-983C-0000F808342D), 831*c2c66affSColin Finck pointer_default(unique) 832*c2c66affSColin Finck] 833*c2c66affSColin Finckinterface ICorDebugEval : IUnknown 834*c2c66affSColin Finck{ 835*c2c66affSColin Finck HRESULT CallFunction([in] ICorDebugFunction *pFunction, [in] ULONG32 nArgs, 836*c2c66affSColin Finck [in] ICorDebugValue *ppArgs[]); 837*c2c66affSColin Finck HRESULT NewObject([in] ICorDebugFunction *pConstructor, [in] ULONG32 nArgs, 838*c2c66affSColin Finck [in] ICorDebugValue *ppArgs[]); 839*c2c66affSColin Finck HRESULT NewObjectNoConstructor([in] ICorDebugClass *pClass); 840*c2c66affSColin Finck HRESULT NewString([in] LPCWSTR string); 841*c2c66affSColin Finck HRESULT NewArray([in] CorElementType elementType, [in] ICorDebugClass *pElementClass, 842*c2c66affSColin Finck [in] ULONG32 rank, [in] ULONG32 dims[], [in] ULONG32 lowBounds[]); 843*c2c66affSColin Finck HRESULT IsActive([out] BOOL *pbActive); 844*c2c66affSColin Finck HRESULT Abort(); 845*c2c66affSColin Finck HRESULT GetResult([out] ICorDebugValue **ppResult); 846*c2c66affSColin Finck HRESULT GetThread([out] ICorDebugThread **ppThread); 847*c2c66affSColin Finck HRESULT CreateValue([in] CorElementType elementType, [in] ICorDebugClass *pElementClass, 848*c2c66affSColin Finck [out] ICorDebugValue **ppValue); 849*c2c66affSColin Finck}; 850*c2c66affSColin Finck 851*c2c66affSColin Finck[ 852*c2c66affSColin Finck object, 853*c2c66affSColin Finck local, 854*c2c66affSColin Finck uuid(6DC3FA01-D7CB-11d2-8A95-0080C792E5D8), 855*c2c66affSColin Finck pointer_default(unique) 856*c2c66affSColin Finck] 857*c2c66affSColin Finckinterface ICorDebugEditAndContinueSnapshot : IUnknown 858*c2c66affSColin Finck{ 859*c2c66affSColin Finck HRESULT CopyMetaData([in] IStream *pIStream, [out] GUID *pMvid); 860*c2c66affSColin Finck HRESULT GetMvid([out] GUID *pMvid); 861*c2c66affSColin Finck HRESULT GetRoDataRVA([out] ULONG32 *pRoDataRVA); 862*c2c66affSColin Finck HRESULT GetRwDataRVA([out] ULONG32 *pRwDataRVA); 863*c2c66affSColin Finck HRESULT SetPEBytes([in] IStream *pIStream); 864*c2c66affSColin Finck HRESULT SetILMap([in] mdToken mdFunction, [in] ULONG cMapSize, [in] COR_IL_MAP map[]); 865*c2c66affSColin Finck HRESULT SetPESymbolBytes([in] IStream *pIStream); 866*c2c66affSColin Finck}; 867*c2c66affSColin Finck 868*c2c66affSColin Finck[ 869*c2c66affSColin Finck object, 870*c2c66affSColin Finck local, 871*c2c66affSColin Finck uuid(dba2d8c1-e5c5-4069-8c13-10a7c6abf43d), 872*c2c66affSColin Finck pointer_default(unique) 873*c2c66affSColin Finck] 874*c2c66affSColin Finckinterface ICorDebugModule : IUnknown 875*c2c66affSColin Finck{ 876*c2c66affSColin Finck HRESULT GetProcess([out] ICorDebugProcess **ppProcess); 877*c2c66affSColin Finck HRESULT GetBaseAddress([out] CORDB_ADDRESS *pAddress); 878*c2c66affSColin Finck HRESULT GetAssembly([out] ICorDebugAssembly **ppAssembly); 879*c2c66affSColin Finck HRESULT GetName([in] ULONG32 cchName, [out] ULONG32 *pcchName, [out] WCHAR szName[]); 880*c2c66affSColin Finck HRESULT EnableJITDebugging([in] BOOL bTrackJITInfo, [in] BOOL bAllowJitOpts); 881*c2c66affSColin Finck HRESULT EnableClassLoadCallbacks([in] BOOL bClassLoadCallbacks); 882*c2c66affSColin Finck HRESULT GetFunctionFromToken([in] mdMethodDef methodDef, [out] ICorDebugFunction **ppFunction); 883*c2c66affSColin Finck HRESULT GetFunctionFromRVA([in] CORDB_ADDRESS rva, [out] ICorDebugFunction **ppFunction); 884*c2c66affSColin Finck HRESULT GetClassFromToken([in] mdTypeDef typeDef, [out] ICorDebugClass **ppClass); 885*c2c66affSColin Finck HRESULT CreateBreakpoint([out] ICorDebugModuleBreakpoint **ppBreakpoint); 886*c2c66affSColin Finck HRESULT GetEditAndContinueSnapshot([out] ICorDebugEditAndContinueSnapshot **ppEditAndContinueSnapshot); 887*c2c66affSColin Finck HRESULT GetMetaDataInterface([in] REFIID riid, [out] IUnknown **ppObj); 888*c2c66affSColin Finck HRESULT GetToken([out] mdModule *pToken); 889*c2c66affSColin Finck HRESULT IsDynamic([out] BOOL *pDynamic); 890*c2c66affSColin Finck HRESULT GetGlobalVariableValue([in] mdFieldDef fieldDef, [out] ICorDebugValue **ppValue); 891*c2c66affSColin Finck HRESULT GetSize([out] ULONG32 *pcBytes); 892*c2c66affSColin Finck HRESULT IsInMemory([out] BOOL *pInMemory); 893*c2c66affSColin Finck}; 894*c2c66affSColin Finck 895*c2c66affSColin Finck[ 896*c2c66affSColin Finck object, 897*c2c66affSColin Finck local, 898*c2c66affSColin Finck uuid(CC7BCAF5-8A68-11d2-983C-0000F808342D), 899*c2c66affSColin Finck pointer_default(unique) 900*c2c66affSColin Finck] 901*c2c66affSColin Finckinterface ICorDebugClass : IUnknown 902*c2c66affSColin Finck{ 903*c2c66affSColin Finck HRESULT GetModule([out] ICorDebugModule **pModule); 904*c2c66affSColin Finck HRESULT GetToken([out] mdTypeDef *pTypeDef); 905*c2c66affSColin Finck HRESULT GetStaticFieldValue([in] mdFieldDef fieldDef, [in] ICorDebugFrame *pFrame, 906*c2c66affSColin Finck [out] ICorDebugValue **ppValue); 907*c2c66affSColin Finck}; 908*c2c66affSColin Finck 909*c2c66affSColin Finck[ 910*c2c66affSColin Finck object, 911*c2c66affSColin Finck local, 912*c2c66affSColin Finck uuid(df59507c-d47a-459e-bce2-6427eac8fd06), 913*c2c66affSColin Finck pointer_default(unique) 914*c2c66affSColin Finck] 915*c2c66affSColin Finckinterface ICorDebugAssembly : IUnknown 916*c2c66affSColin Finck{ 917*c2c66affSColin Finck HRESULT GetProcess([out] ICorDebugProcess **ppProcess); 918*c2c66affSColin Finck HRESULT GetAppDomain([out] ICorDebugAppDomain **ppAppDomain); 919*c2c66affSColin Finck HRESULT EnumerateModules([out] ICorDebugModuleEnum **ppModules); 920*c2c66affSColin Finck HRESULT GetCodeBase([in] ULONG32 cchName, [out] ULONG32 *pcchName, [out] WCHAR szName[]); 921*c2c66affSColin Finck HRESULT GetName([in] ULONG32 cchName, [out] ULONG32 *pcchName, [out] WCHAR szName[]); 922*c2c66affSColin Finck}; 923*c2c66affSColin Finck 924*c2c66affSColin Finck 925*c2c66affSColin Finck[ 926*c2c66affSColin Finck object, 927*c2c66affSColin Finck local, 928*c2c66affSColin Finck uuid(CC7BCAF3-8A68-11d2-983C-0000F808342D), 929*c2c66affSColin Finck pointer_default(unique) 930*c2c66affSColin Finck] 931*c2c66affSColin Finckinterface ICorDebugFunction : IUnknown 932*c2c66affSColin Finck{ 933*c2c66affSColin Finck HRESULT GetModule([out] ICorDebugModule **ppModule); 934*c2c66affSColin Finck HRESULT GetClass([out] ICorDebugClass **ppClass); 935*c2c66affSColin Finck HRESULT GetToken([out] mdMethodDef *pMethodDef); 936*c2c66affSColin Finck HRESULT GetILCode([out] ICorDebugCode **ppCode); 937*c2c66affSColin Finck HRESULT GetNativeCode([out] ICorDebugCode **ppCode); 938*c2c66affSColin Finck HRESULT CreateBreakpoint([out] ICorDebugFunctionBreakpoint **ppBreakpoint); 939*c2c66affSColin Finck HRESULT GetLocalVarSigToken([out] mdSignature *pmdSig); 940*c2c66affSColin Finck HRESULT GetCurrentVersionNumber([out] ULONG32 *pnCurrentVersion); 941*c2c66affSColin Finck}; 942*c2c66affSColin Finck 943*c2c66affSColin Finck[ 944*c2c66affSColin Finck object, 945*c2c66affSColin Finck local, 946*c2c66affSColin Finck uuid(5263E909-8CB5-11d3-BD2F-0000F80849BD), 947*c2c66affSColin Finck pointer_default(unique) 948*c2c66affSColin Finck] 949*c2c66affSColin Finckinterface ICorDebugUnmanagedCallback : IUnknown 950*c2c66affSColin Finck{ 951*c2c66affSColin Finck HRESULT DebugEvent([in] LPDEBUG_EVENT pDebugEvent, [in] BOOL fOutOfBand); 952*c2c66affSColin Finck}; 953*c2c66affSColin Finck 954*c2c66affSColin Finck[ 955*c2c66affSColin Finck object, 956*c2c66affSColin Finck local, 957*c2c66affSColin Finck uuid(8D600D41-F4F6-4cb3-B7EC-7BD164944036), 958*c2c66affSColin Finck pointer_default(unique) 959*c2c66affSColin Finck] 960*c2c66affSColin Finckinterface ICorDebugEditAndContinueErrorInfo : IUnknown 961*c2c66affSColin Finck{ 962*c2c66affSColin Finck HRESULT GetModule([out] ICorDebugModule **ppModule); 963*c2c66affSColin Finck HRESULT GetToken([out]mdToken *pToken); 964*c2c66affSColin Finck HRESULT GetErrorCode([out]HRESULT *pHr); 965*c2c66affSColin Finck HRESULT GetString([in] ULONG32 cchString, [out] ULONG32 *pcchString, 966*c2c66affSColin Finck [out] WCHAR szString[]); 967*c2c66affSColin Finck} 968*c2c66affSColin Finck 969*c2c66affSColin Finck[ 970*c2c66affSColin Finck object, 971*c2c66affSColin Finck local, 972*c2c66affSColin Finck uuid(18AD3D6E-B7D2-11d2-BD04-0000F80849BD), 973*c2c66affSColin Finck pointer_default(unique) 974*c2c66affSColin Finck] 975*c2c66affSColin Finckinterface ICorDebugObjectValue : ICorDebugValue 976*c2c66affSColin Finck{ 977*c2c66affSColin Finck HRESULT GetClass([out] ICorDebugClass **ppClass); 978*c2c66affSColin Finck HRESULT GetFieldValue([in] ICorDebugClass *pClass, [in] mdFieldDef fieldDef, 979*c2c66affSColin Finck [out] ICorDebugValue **ppValue); 980*c2c66affSColin Finck HRESULT GetVirtualMethod([in] mdMemberRef memberRef, [out] ICorDebugFunction **ppFunction); 981*c2c66affSColin Finck HRESULT GetContext([out] ICorDebugContext **ppContext); 982*c2c66affSColin Finck HRESULT IsValueClass([out] BOOL *pbIsValueClass); 983*c2c66affSColin Finck HRESULT GetManagedCopy([out] IUnknown **ppObject); 984*c2c66affSColin Finck HRESULT SetFromManagedCopy([in] IUnknown *pObject); 985*c2c66affSColin Finck}; 986*c2c66affSColin Finck 987*c2c66affSColin Finck[ 988*c2c66affSColin Finck object, 989*c2c66affSColin Finck local, 990*c2c66affSColin Finck uuid(CC7BCB00-8A68-11d2-983C-0000F808342D), 991*c2c66affSColin Finck pointer_default(unique) 992*c2c66affSColin Finck] 993*c2c66affSColin Finckinterface ICorDebugContext : ICorDebugObjectValue 994*c2c66affSColin Finck{ 995*c2c66affSColin Finck}; 996*c2c66affSColin Finck 997*c2c66affSColin Finck[ 998*c2c66affSColin Finck object, 999*c2c66affSColin Finck local, 1000*c2c66affSColin Finck uuid(CC7BCAF4-8A68-11d2-983C-0000F808342D), 1001*c2c66affSColin Finck pointer_default(unique) 1002*c2c66affSColin Finck] 1003*c2c66affSColin Finckinterface ICorDebugCode : IUnknown 1004*c2c66affSColin Finck{ 1005*c2c66affSColin Finck HRESULT IsIL([out] BOOL *pbIL); 1006*c2c66affSColin Finck HRESULT GetFunction([out] ICorDebugFunction **ppFunction); 1007*c2c66affSColin Finck HRESULT GetAddress([out] CORDB_ADDRESS *pStart); 1008*c2c66affSColin Finck HRESULT GetSize([out] ULONG32 *pcBytes); 1009*c2c66affSColin Finck HRESULT CreateBreakpoint([in] ULONG32 offset, [out] ICorDebugFunctionBreakpoint **ppBreakpoint); 1010*c2c66affSColin Finck HRESULT GetCode([in] ULONG32 startOffset, [in] ULONG32 endOffset, 1011*c2c66affSColin Finck [in] ULONG32 cBufferAlloc, [out] BYTE buffer[], [out] ULONG32 *pcBufferSize); 1012*c2c66affSColin Finck HRESULT GetVersionNumber([out] ULONG32 *nVersion); 1013*c2c66affSColin Finck HRESULT GetILToNativeMapping([in] ULONG32 cMap, [out] ULONG32 *pcMap, 1014*c2c66affSColin Finck [out] COR_DEBUG_IL_TO_NATIVE_MAP map[]); 1015*c2c66affSColin Finck HRESULT GetEnCRemapSequencePoints([in] ULONG32 cMap,[out] ULONG32 *pcMap, 1016*c2c66affSColin Finck [out] ULONG32 offsets[]); 1017*c2c66affSColin Finck}; 1018*c2c66affSColin Finck 1019*c2c66affSColin Finck[ 1020*c2c66affSColin Finck object, 1021*c2c66affSColin Finck local, 1022*c2c66affSColin Finck uuid(CC726F2F-1DB7-459b-B0EC-05F01D841B42), 1023*c2c66affSColin Finck pointer_default(unique) 1024*c2c66affSColin Finck] 1025*c2c66affSColin Finckinterface ICorDebugMDA : IUnknown 1026*c2c66affSColin Finck{ 1027*c2c66affSColin Finck HRESULT GetName([in] ULONG32 cchName, [out] ULONG32 * pcchName, [out] WCHAR szName[]); 1028*c2c66affSColin Finck 1029*c2c66affSColin Finck HRESULT GetDescription([in] ULONG32 cchName, [out] ULONG32 * pcchName, [out] WCHAR szName[]); 1030*c2c66affSColin Finck 1031*c2c66affSColin Finck HRESULT GetXML([in] ULONG32 cchName, [out] ULONG32 * pcchName, [out] WCHAR szName[]); 1032*c2c66affSColin Finck 1033*c2c66affSColin Finck typedef enum CorDebugMDAFlags 1034*c2c66affSColin Finck { 1035*c2c66affSColin Finck MDA_FLAG_SLIP = 0x2 1036*c2c66affSColin Finck } CorDebugMDAFlags; 1037*c2c66affSColin Finck 1038*c2c66affSColin Finck HRESULT GetFlags([in] CorDebugMDAFlags * pFlags); 1039*c2c66affSColin Finck 1040*c2c66affSColin Finck HRESULT GetOSThreadId([out] DWORD * pOsTid); 1041*c2c66affSColin Finck}; 1042