// 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;