VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/shaderlib/wine/include/cordebug.idl

最後變更 在這個檔案是 53206,由 vboxsync 提交於 10 年 前

Devices/vmsvga: header fixes

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

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette