// msdbg164.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 enum enum_EVALFLAGS164 { /*********************************************************************** // --------------------------------------------------------------------- // VS 8.0 values // the return value is interesting EVAL150_RETURNVALUE = 0x0002, // Same as EVAL_RETURNVALUE // don't allow side effects EVAL150_NOSIDEEFFECTS = 0x0004, // Same as EVAL_NOSIDEEFFECTS // stop on breakpoints EVAL150_ALLOWBPS = 0x0008, // Same as EVAL_ALLOWBPS // allow error reporting to the host EVAL150_ALLOWERRORREPORT = 0x0010, // Same as EVAL_ALLOWERRORREPORT // evaluate any functions as address (instead of invoking the function) EVAL150_FUNCTION_AS_ADDRESS = 0x0040, // Same as EVAL_FUNCTION_AS_ADDRESS // don't allow function/property evaluation EVAL150_NOFUNCEVAL = 0x0080, // Same as EVAL_NOFUNCEVAL // don't allow events EVAL150_NOEVENTS = 0x1000, // Same as EVAL_NOEVENTS // design-time expression evaluation EVAL150_DESIGN_TIME_EXPR_EVAL = 0x2000, // Same as EVAL_DESIGN_TIME_EXPR_EVAL // Allow implicit variable creation EVAL150_ALLOW_IMPLICIT_VARS = 0x4000, // Same as EVAL_ALLOW_IMPLICIT_VARS // --------------------------------------------------------------------- // Values added in VS 9.0 // Force eval to occur now. Somebody is requesting it (like the user) EVAL150_FORCE_EVALUATION_NOW = 0x8000, // --------------------------------------------------------------------- // Values added in VS 10.0 //Disable use of the IL interpreter. DO NOT USE THIS FLAG. USE EVAL150_ENABLE_ILINTERPRETER instead. EVAL150_NO_IL_INTERPRETER_DEPRECATED = 0x10000, // Force the EE to allow func-evals (not just ToString() or property getters) even if EVAL100_NOSIDEEFFECTS is present. EVAL150_ALLOW_FUNC_EVALS_EVEN_IF_NO_SIDE_EFFECTS = 0x20000, // Allow threads to slip during funceval. EVAL150_ALLOW_THREADSLIPPING = 0x40000, // --------------------------------------------------------------------- // Values added in VS 11.0 EVAL150_SHOW_VALUERAW = 0x80000, // All function evaluations should actually execute inside the debuggee, as opposed // to being interpreted through the IL interpreter. EVAL150_FORCE_REAL_FUNCEVAL = 0x100000, //Indicates that the IL interpreter is being used for the evaluation. This includes real-func eval //cases where the EE is talking to vil. The only time this is cleared is when the interpreter is completely //disabled (as in the C# EE talks directly to vil). This flag is cleared in all non-Concord scenarios. EVAL150_ILINTERPRETER_BEING_USED = 0x200000, // --------------------------------------------------------------------- // Values added in VS 15.0 // Eval flag to permit less-obvious side effects, such as func-evals from natvis expressions. // Currently, this flag is respected only by the native C++ EE in Concord. EVAL150_ALLOW_EXTENDED_SIDE_EFFECTS = 0x400000, ***********************************************************************/ EVAL_FILTER_TO_FAVORITES = 0x10000000, // When an item has favorites, only return the favorite children in the expansion EVAL_USE_SHORT_DISPLAY_NAME = 0x20000000, // When an item's display string is computed from its favorites, do not include field names in the value }; typedef DWORD EVALFLAGS164; enum enum_DEBUGPROP_INFO_FLAGS164 { /*********************************************************************** // --------------------------------------------------------------------- // VS 8.0 values DEBUGPROP150_INFO_FULLNAME = 0x00000001, DEBUGPROP150_INFO_NAME = 0x00000002, DEBUGPROP150_INFO_TYPE = 0x00000004, DEBUGPROP150_INFO_VALUE = 0x00000008, DEBUGPROP150_INFO_ATTRIB = 0x00000010, DEBUGPROP150_INFO_PROP = 0x00000020, DEBUGPROP150_INFO_VALUE_AUTOEXPAND = 0x00010000, DEBUGPROP150_INFO_NOFUNCEVAL = 0x00020000, // Tell EE not to perform ANY type of func-eval. DEBUGPROP150_INFO_VALUE_RAW = 0x00040000, // Tell EE not to return any beautified values or members. DEBUGPROP150_INFO_VALUE_NO_TOSTRING = 0x00080000, // Tell EE not to return any special synthesized values (ToString() for instance). DEBUGPROP150_INFO_NO_NONPUBLIC_MEMBERS = 0x00100000, // Tell EE to return non-public members for non-user objects. DEBUGPROP150_INFO_NONE = 0x00000000, DEBUGPROP150_INFO_STANDARD = DEBUGPROP150_INFO_ATTRIB | DEBUGPROP150_INFO_NAME | DEBUGPROP150_INFO_TYPE | DEBUGPROP150_INFO_VALUE, DEBUGPROP150_INFO_ALL = 0xffffffff, // --------------------------------------------------------------------- // VS 9.0 values DEBUGPROP150_INFO_NOSIDEEFFECTS = 0x00200000, // Tell EE not to perform any eval that has side effects // --------------------------------------------------------------------- // VS 10.0 values //Disable use of the IL interpreter. DEBUGPROP150_INFO_NO_IL_INTERPRETER = 0x00400000, // Force the EE to allow func-evals (not just ToString() or property getters) even if EVAL100_NOSIDEEFFECTS is present. DEBUGPROP150_INFO_ALLOW_FUNC_EVALS_EVEN_IF_NO_SIDE_EFFECTS = 0x00800000, DEBUGPROP150_INFO_ALLOW_THREADSLIPPING = 0x01000000, // Tell EE that slipping threads during funcevals is ok // This flag says to use real funceval for evaluation when interpreted evalutaion is being used. DEBUGPROP150_INFO_FORCE_REAL_FUNCEVAL = 0x02000000, //Indicates that the IL interpreter is being used for the evaluation. This includes real-func eval //cases where the EE is talking to vil. The only time this is cleared is when the interpreter is completely //disabled (as in the C# EE talks directly to vil). This flag is cleared in all non-Concord scenarios. DEBUGPROP150_INFO_ILINTERPRETER_BEING_USED = 0x04000000, // VS 15.0 DEBUGPROP150_INFO_FORCE_EVALUATION_NOW_WITH_EXT_SIDE_EFFECTS = 0x08000000, // To force evaluation now, same as EVAL90_FORCE_EVALUATION_NOW | EVAL150_ALLOW_EXTENDED_SIDE_EFFECTS. ***********************************************************************/ DEBUGPROP_INFO_FILTER_TO_FAVORITES = 0x10000000, // When an item has favorites, only return the favorite children in the expansion DEBUGPROP_INFO_USE_SHORT_DISPLAY_NAME = 0x20000000, // When an item's display string is computed from its favorites, do not include field names in the value }; typedef DWORD DEBUGPROP164_INFO_FLAGS; cpp_quote("#define DBG_EXATTRIB_CAN_FAVORITE 0x0000000000000008") cpp_quote("#define DBG_EXATTRIB_IS_FAVORITE 0x0000000000000010") cpp_quote("#define DBG_EXATTRIB_HAS_FAVORITES 0x0000000000000020") [ object, uuid(B66D2821-1AED-489D-B376-42270D737C78), pointer_default(unique) ] interface IDebugProperty164 : IUnknown { HRESULT AddToFavorites([in] IDebugProperty164* pChild); HRESULT RemoveFromFavorites([in] IDebugProperty164* pChild); } // ------------------------------------------------------------------ // IDebugExceptionDetails164 // // Optional interface that can be implemented by engines that implement IDebugExceptionDetails [ local, object, uuid(766A0544-AE86-4C9A-8DFB-BD0D71F30D9A), pointer_default(unique) ] interface IDebugExceptionDetails164 : IUnknown { // Get the code context for a frame of the exception's call stack for the purposes of navigation HRESULT GetExceptionCodeContext([in] int exceptionFrameIndex, [out] IDebugCodeContext2** pCodeContext); // Gets the call stack for this exception (if a rethrown exception) // If empty or null, there is no need to display a callstack // isFormatted determines whether the callstack is formatted to contain bold/italic/hyperlinked text // dwFlags contains FRAMEINFO_FLAGS for controlling the format of the stack frame. Note that not all flags are applicable - only frame name format, and frame filtering related flags apply. // dwFlagsEx is reserved for future FRAMEINFO_FLAGES_EX values that might apply. HRESULT GetRethrownCallStack([in] BOOL addFormatting, [in] DWORD dwFlags, [in] DWORD dwExFlags, [out] BSTR* pbstrCallstack); };