1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
/*****************************************************************************
** **
** XCordebug.idl - Experimental (undocumented) Debugging interfaces. **
** **
*****************************************************************************/
/* ------------------------------------------------------------------------- *
* Imported types
* ------------------------------------------------------------------------- */
import "cordebug.idl";
// @dbgtodo : proper API docs here.
// - include failure semantics of Filter. What does failure mean?
//
/* Comments to add to ICorDebugDataTarget docs:
* Whenever the target process changes, the debugger client must
* call ICorDebugProcess4::ProcessStateChanged before issuing any other
* ICorDebug API calls.
*/
[
object,
local,
uuid(E930C679-78AF-4953-8AB7-B0AABF0F9F80),
pointer_default(unique)
]
interface ICorDebugProcess4 : IUnknown
{
/*
* Process native debug events.
*/
HRESULT Filter(
[in, length_is(countBytes), size_is(countBytes)] const BYTE pRecord[],
[in] DWORD countBytes,
[in] CorDebugRecordFormat format,
[in] DWORD dwFlags,
[in] DWORD dwThreadId,
[in] ICorDebugManagedCallback * pCallback,
[in, out] CORDB_CONTINUE_STATUS * pContinueStatus);
/*
* Debugger calls this to notify ICorDebug that the process is running.
*
* Notes:
* ProcessStateChanged(PROCESS_RUNNING) has similar semantics to ICorDebugProcess::Continue();
*/
HRESULT ProcessStateChanged([in] CorDebugStateChange eChange);
};
#ifdef FEATURE_LEGACYNETCF_DBG_HOST_CONTROL
/* A private API for use on Windows phone to invoke CLR hosting
* callbacks on IHostNetCFDebugControlManager. This allows the
* host's UI thread to be suspended and resumed on demand.
*
* This API should not be used for anything other than the
* Windows Phone scenario, it should never be made public,
* and as soon as we support mixed-mode debugging it should
* be retired by removing the interface and failing any
* QueryInterface call for it.
*/
[
object,
local,
uuid(34B27FB0-A318-450D-A0DD-11B70B21F41D),
pointer_default(unique)
]
interface ICorDebugLegacyNetCFHostCallbackInvoker_PrivateWindowsPhoneOnly : IUnknown
{
// Invokes IHostNetCFDebugControlManager::NotifyPause() on the debuggee's host
HRESULT InvokePauseCallback();
// Invokes IHostNetCFDebugControlManager::NotifyResume() on the debuggee's host
HRESULT InvokeResumeCallback();
};
#endif
|