summaryrefslogtreecommitdiff
path: root/src/inc/xcordebug.idl
diff options
context:
space:
mode:
Diffstat (limited to 'src/inc/xcordebug.idl')
-rw-r--r--src/inc/xcordebug.idl85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/inc/xcordebug.idl b/src/inc/xcordebug.idl
new file mode 100644
index 0000000000..646c2069ea
--- /dev/null
+++ b/src/inc/xcordebug.idl
@@ -0,0 +1,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 \ No newline at end of file