// msdbg172.idl
/********************************************************
* *
* Copyright (C) Microsoft. All rights reserved. *
* *
*********************************************************/
cpp_quote("/********************************************************")
cpp_quote("* *")
cpp_quote("* Copyright (C) Microsoft. All rights reserved. *")
cpp_quote("* *")
cpp_quote("*********************************************************/")
import "oaidl.idl";
import "ocidl.idl";
#ifndef DEBUGGER_PIA_BUILD
import "msdbg.idl";
#endif
#ifdef DEBUGGER_PIA_BUILD
#define XINT32 int
#else
#define XINT32 ULONG32
#endif
// ------------------------------------------------------------------
// IDebugBreakpoint172
//
///
/// Interface implemented by pending or bound breakpoints to provide support for dependent
/// breakpoints. This interface is always implemented by SDM breakpoints and can be
/// implemented by engine breakpoints if they wish to re-implement dependent breakpoint
/// support themselves. In multi-engine scenarios, call QueryInterface for IDebugBoundBreakpoint2
/// or IDebugPendingBreakpoint2 to enable other engine's breakpoints that are dependent on
/// this breakpoint.
///
[
local,
object,
uuid(FD1F6D4E-3882-4996-A3F7-1CC5BDC09A6C),
pointer_default(unique)
]
interface IDebugBreakpoint172 : IUnknown
{
///
/// Sets pDependentBreakpoint to be dependent on the current breakpoint.
///
/// The dependent breakpoint. This can be an object from a different engine.
HRESULT CreateDependency([in] IDebugBreakpoint172* pDependentBreakpoint);
///
/// Removes pDependentBreakpoint from being dependent on the current breakpoint.
///
/// The dependent breakpoint. This can be an object from a different engine.
HRESULT RemoveDependency([in] IDebugBreakpoint172* pDependentBreakpoint);
};
enum enum_LAUNCH_FLAGS172
{
/**************************************
LAUNCH_DEBUG = 0x0000, // Launch the process for debugging
LAUNCH_NODEBUG = 0x0001, // Launch the process without debugging it
LAUNCH_ENABLE_ENC = 0x0002, // Launch the process with EnC enabled.
LAUNCH_MERGE_ENV = 0x0004, // Launch the process and merge the environment
LAUNCH_WAIT_FOR_EVENT = 0x0008
LAUNCH_ALLOW_EVENTS_AFTER_STOPPED = 0x0010, // Allow stopping events in break-mode
LAUNCH_FORCE_32BIT_DEBUG = 0x0020, // Force use of the 32-bit debugger
LAUNCH_FORCE_64BIT_DEBUG = 0x0040 // Force use of the 64-bit debugger
LAUNCH_PROFILING = 0x0080 // Launch the process for profiling
LAUNCH_STDIO_TO_OUTPUT_WINDOW = 0x0100
LAUNCH_FORCE_PSEUDO_REMOTE_DEBUG = 0x0200, // Force pseudoremote debugging
LAUNCH_INTEGRATED_CONSOLE = 0x400
***************************************/
LAUNCH_SINGLE_USE_INTEGRATED_CONSOLE = 0x800
};
typedef DWORD LAUNCH_FLAGS172;
// Extended bit field to support more annotated frame types.
enum enum_FRAMEINFO_FLAGS_VALUES172
{
// Existing flags:
// FIFV_ANNOTATEDFRAME = 0x00000001,
// FIFV_NON_USER_CODE = 0x00000002,
// FIFV_CANINTERCEPT_EXCEPTION = 0x00000004,
// FIFV_FUNCEVALFRAME = 0x00000008,
// FIFV_MAXFRAMES_EXCEEDED = 0x00000010,
// FIFV_ASYNC_FRAME = 0x00000020,
// FIFV_RETURN_STACK_FRAME = 0x00000040,
// FIFV_TASK_CREATION_STACK_FRAME = 0x00000080,
// FIFV_ASYNC_CALL_ANNOTATED_FRAME = 0x00000100,
// FIFV_ASYNC_CONTINUATION_ANNOTATED_FRAME = 0x00000200,
// FIFV_INLINE_FRAME = 0x00000400
// Indicates that the frame is a hidden frame. Set only if
// FIF_FILTER_INCLUDE_ALL is set.
FIFV_HIDDEN_FRAME = 0x00000800
};
// ------------------------------------------------------------------
// IDebugPort172
//
//
// Interface implemented by ports to override the PortSupplier's engine list.
//
// ------------------------------------------------------------------
[
object,
uuid(77177319-1EE9-4394-98C4-0342CA8BD5BB),
pointer_default(unique)
]
interface IDebugPort172 : IUnknown
{
///
/// Obtains a GUID that is used to treated as a pseudo-port supplier id for
/// the purposes of engine registration. This is used for port suppliers where
/// the capabilities of each port depends on what is connected to. For example,
/// the Azure App Service port supplier has different capabilities depending on
/// if a Windows or Linux port is selected.
///
/// The pseudo-port supplier id
/// S_OK on success. Any failure will be ignored and the regular port supplier id will be used instead.
HRESULT GetEngineListPortSupplierId([out] GUID* pPortSuppliedId);
};
enum enum_MODULE172_FLAGS
{
//// ---------------------------------------------------------------------
//// VS 8.0 values
//MODULE100_FLAG_NONE = 0x0000,
//MODULE100_FLAG_SYSTEM = 0x0001,
//MODULE100_FLAG_SYMBOLS = 0x0002,
//MODULE100_FLAG_64BIT = 0x0004,
////
//// If the engine knows a module about optimizations it needs to set
//// either of these flags, if it does not the module window will assume
//// it does not
////
//MODULE100_FLAG_OPTIMIZED = 0x0008,
//MODULE100_FLAG_UNOPTIMIZED = 0x0010,
//// ---------------------------------------------------------------------
//// VS 9.0 values
//// ---------------------------------------------------------------------
//// VS 10.0 values
//MODULE100_FLAG_ENGINEWILLLOADSYMS = 0x0020,
//MODULE100_FLAG_SYMBOLSUNAVAILABLE = 0x0040, // The engine cannot load symbols at this time
MODULE172_FLAG_SYMBOLS_DECOMPILED = 0x0080, // the symbols are the result of a decompilation
MODULE172_FLAG_SYMBOLS_RELOADABLE = 0x0100 // the symbols have the potential to be reloaded in favor of a higher fidelity symbol file, i.e. decompiled can be reloaded for the real symbols
};
typedef DWORD MODULE172_FLAGS;