DBG_ATTRIB_FLAGS

Applies to: yesVisual Studio noVisual Studio for Mac

Note

This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

Describes various attributes for an IDebugProperty2 or an IDebugReference2 interface. Member of the DEBUG_PROPERTY_INFO structure.

Syntax

#define DBG_ATTRIB_NONE                 0x0000000000000000,
#define DBG_ATTRIB_ALL                  0x00000000ffffffff,

// Attributes about the object itself

#define DBG_ATTRIB_OBJ_IS_EXPANDABLE    0x0000000000000001,
#define DBG_ATTRIB_OBJ_HAS_ID           0x0000000000000002,
#define DBG_ATTRIB_OBJ_CAN_HAVE_ID      0x0000000000000004,

// Attributes about the value of the object

#define DBG_ATTRIB_VALUE_READONLY       0x0000000000000010,
#define DBG_ATTRIB_VALUE_ERROR          0x0000000000000020,
#define DBG_ATTRIB_VALUE_SIDE_EFFECT    0x0000000000000040,
#define DBG_ATTRIB_OVERLOADED_CONTAINER 0x0000000000000080,
#define DBG_ATTRIB_VALUE_BOOLEAN        0x0000000000000100,
#define DBG_ATTRIB_VALUE_BOOLEAN_TRUE   0x0000000000000200,
#define DBG_ATTRIB_VALUE_INVALID        0x0000000000000400,
#define DBG_ATTRIB_VALUE_NAT            0x0000000000000800,
#define DBG_ATTRIB_VALUE_AUTOEXPANDED   0x0000000000001000,
#define DBG_ATTRIB_VALUE_TIMEOUT        0x0000000000002000,
#define DBG_ATTRIB_VALUE_RAW_STRING     0x0000000000004000,
#define DBG_ATTRIB_VALUE_CUSTOM_VIEWER  0x0000000000008000,

// Attributes about field access types for the object

#define DBG_ATTRIB_ACCESS_NONE          0x0000000000010000,
#define DBG_ATTRIB_ACCESS_PUBLIC        0x0000000000020000,
#define DBG_ATTRIB_ACCESS_PRIVATE       0x0000000000040000,
#define DBG_ATTRIB_ACCESS_PROTECTED     0x0000000000080000,
#define DBG_ATTRIB_ACCESS_FINAL         0x0000000000100000,
#define DBG_ATTRIB_ACCESS_ALL           0x00000000001f0000,

// Attributes for the storage types of the object

#define DBG_ATTRIB_STORAGE_NONE         0x0000000001000000,
#define DBG_ATTRIB_STORAGE_GLOBAL       0x0000000002000000,
#define DBG_ATTRIB_STORAGE_STATIC       0x0000000004000000,
#define DBG_ATTRIB_STORAGE_REGISTER     0x0000000008000000,
#define DBG_ATTRIB_STORAGE_ALL          0x000000000f000000,

// Attributes for the type modifiers on the object

#define DBG_ATTRIB_TYPE_NONE            0x0000000100000000,
#define DBG_ATTRIB_TYPE_VIRTUAL         0x0000000200000000,
#define DBG_ATTRIB_TYPE_CONSTANT        0x0000000400000000,
#define DBG_ATTRIB_TYPE_SYNCHRONIZED    0x0000000800000000,
#define DBG_ATTRIB_TYPE_VOLATILE        0x0000001000000000,
#define DBG_ATTRIB_TYPE_ALL             0x0000001f00000000,

// Attributes that describe the type of object

#define DBG_ATTRIB_DATA                 0x0000010000000000,
#define DBG_ATTRIB_METHOD               0x0000020000000000,
#define DBG_ATTRIB_PROPERTY             0x0000040000000000,
#define DBG_ATTRIB_CLASS                0x0000080000000000,
#define DBG_ATTRIB_BASECLASS            0x0000100000000000,
#define DBG_ATTRIB_INTERFACE            0x0000200000000000,
#define DBG_ATTRIB_INNERCLASS           0x0000400000000000,
#define DBG_ATTRIB_MOSTDERIVED          0x0000800000000000,
#define DBG_ATTRIB_CHILD_ALL            0x0000ff0000000000,

// Miscellaneous attributes

#define DBG_ATTRIB_MULTI_CUSTOM_VIEWERS 0x0001000000000000

typedef UINT64 DBG_ATTRIB_FLAGS;
public const int DBG_ATTRIB_NONE                 = 0x0000000000000000,
public const int DBG_ATTRIB_ALL                  = 0x00000000ffffffff,

// Attributes about the object itself

public const int DBG_ATTRIB_OBJ_IS_EXPANDABLE    = 0x0000000000000001,
public const int DBG_ATTRIB_OBJ_HAS_ID           = 0x0000000000000002,
public const int DBG_ATTRIB_OBJ_CAN_HAVE_ID      = 0x0000000000000004,

// Attributes about the value of the object

public const int DBG_ATTRIB_VALUE_READONLY       = 0x0000000000000010,
public const int DBG_ATTRIB_VALUE_ERROR          = 0x0000000000000020,
public const int DBG_ATTRIB_VALUE_SIDE_EFFECT    = 0x0000000000000040,
public const int DBG_ATTRIB_OVERLOADED_CONTAINER = 0x0000000000000080,
public const int DBG_ATTRIB_VALUE_BOOLEAN        = 0x0000000000000100,
public const int DBG_ATTRIB_VALUE_BOOLEAN_TRUE   = 0x0000000000000200,
public const int DBG_ATTRIB_VALUE_INVALID        = 0x0000000000000400,
public const int DBG_ATTRIB_VALUE_NAT            = 0x0000000000000800,
public const int DBG_ATTRIB_VALUE_AUTOEXPANDED   = 0x0000000000001000,
public const int DBG_ATTRIB_VALUE_TIMEOUT        = 0x0000000000002000,
public const int DBG_ATTRIB_VALUE_RAW_STRING     = 0x0000000000004000,
public const int DBG_ATTRIB_VALUE_CUSTOM_VIEWER  = 0x0000000000008000,

// Attributes about field access types for the object

public const int DBG_ATTRIB_ACCESS_NONE          = 0x0000000000010000,
public const int DBG_ATTRIB_ACCESS_PUBLIC        = 0x0000000000020000,
public const int DBG_ATTRIB_ACCESS_PRIVATE       = 0x0000000000040000,
public const int DBG_ATTRIB_ACCESS_PROTECTED     = 0x0000000000080000,
public const int DBG_ATTRIB_ACCESS_FINAL         = 0x0000000000100000,
public const int DBG_ATTRIB_ACCESS_ALL           = 0x00000000001f0000,

// Attributes for the storage types of the object

public const int DBG_ATTRIB_STORAGE_NONE         = 0x0000000001000000,
public const int DBG_ATTRIB_STORAGE_GLOBAL       = 0x0000000002000000,
public const int DBG_ATTRIB_STORAGE_STATIC       = 0x0000000004000000,
public const int DBG_ATTRIB_STORAGE_REGISTER     = 0x0000000008000000,
public const int DBG_ATTRIB_STORAGE_ALL          = 0x000000000f000000,

// Attributes for the type modifiers on the object

public const int DBG_ATTRIB_TYPE_NONE            = 0x0000000100000000,
public const int DBG_ATTRIB_TYPE_VIRTUAL         = 0x0000000200000000,
public const int DBG_ATTRIB_TYPE_CONSTANT        = 0x0000000400000000,
public const int DBG_ATTRIB_TYPE_SYNCHRONIZED    = 0x0000000800000000,
public const int DBG_ATTRIB_TYPE_VOLATILE        = 0x0000001000000000,
public const int DBG_ATTRIB_TYPE_ALL             = 0x0000001f00000000,

// Attributes that describe the type of object

public const int DBG_ATTRIB_DATA                 = 0x0000010000000000,
public const int DBG_ATTRIB_METHOD               = 0x0000020000000000,
public const int DBG_ATTRIB_PROPERTY             = 0x0000040000000000,
public const int DBG_ATTRIB_CLASS                = 0x0000080000000000,
public const int DBG_ATTRIB_BASECLASS            = 0x0000100000000000,
public const int DBG_ATTRIB_INTERFACE            = 0x0000200000000000,
public const int DBG_ATTRIB_INNERCLASS           = 0x0000400000000000,
public const int DBG_ATTRIB_MOSTDERIVED          = 0x0000800000000000,
public const int DBG_ATTRIB_CHILD_ALL            = 0x0000ff0000000000,

// Miscellaneous attributes

public const int DBG_ATTRIB_MULTI_CUSTOM_VIEWERS = 0x0001000000000000

Members

DBG_ATTRIB_NONE
Indicates no attributes.

DBG_ATTRIB_ALL
Indicates all attributes.

DBG_ATTRIB_OBJ_IS_EXPANDABLE
Indicates that the reference or property has children.

DBG_ATTRIB_OBJ_HAS_ID
Indicates that an ID for this object has been created.

DBG_ATTRIB_OBJ_CAN_HAVE_ID
Indicates that an ID for this object can be created.

DBG_ATTRIB_VALUE_READONLY
Indicates that the value is read-only.

DBG_ATTRIB_VALUE_ERROR
Indicates that the value is an error.

DBG_ATTRIB_VALUE_SIDE_EFFECT
Indicates that the evaluation had a side effect.

DBG_ATTRIB_OVERLOADED_CONTAINER
Indicates that this property is really a container of overloads.

DBG_ATTRIB_VALUE_BOOLEAN
Indicates that the value in DEBUG_PROPERTY_INFO::bstrValue is Boolean.

DBG_ATTRIB_VALUE_BOOLEAN_TRUE
Indicates that the value in DEBUG_PROPERTY_INFO::bstrValue is Boolean and TRUE.

DBG_ATTRIB_VALUE_INVALID
Indicates that the value in DEBUG_PROPERTY_INFO::bstrValue is not valid.

DBG_ATTRIB_VALUE_NAT
Indicates that the value in DEBUG_PROPERTY_INFO::bstrValue is "not a thing" (NAT). NAT describes a register flag in Intel 64-bit processors that indicates deferred speculative exceptions.

DBG_ATTRIB_VALUE_AUTOEXPANDED
Indicates that the value in DEBUG_PROPERTY_INFO::bstrValue has possibly been auto-expanded.

DBG_ATTRIB_VALUE_TIMEOUT
Indicates that an evaluation has timed-out.

DBG_ATTRIB_VALUE_RAW_STRING
Indicates that the value in DEBUG_PROPERTY_INFO::bstrValue can be represented by a raw string.

DBG_ATTRIB_VALUE_CUSTOM_VIEWER
Indicates that this property has at least one custom viewer associated with it.

DBG_ATTRIB_ACCESS_NONE
Indicates an object that has neither public, private, nor protected type access.

DBG_ATTRIB_ACCESS_PUBLIC
Indicates an object that has public access.

DBG_ATTRIB_ACCESS_PRIVATE
Indicates an object that has private access.

DBG_ATTRIB_ACCESS_PROTECTED
Indicates an object that has protected access.

DBG_ATTRIB_ACCESS_FINAL
Indicates an object that has final access.

DBG_ATTRIB_ACCESS_ALL
Mask to extract the access attributes from DBG_ATTRIB_FLAGS.

DBG_ATTRIB_STORAGE_NONE
Indicates that there is no storage type specified.

DBG_ATTRIB_STORAGE_GLOBAL
Indicates global storage.

DBG_ATTRIB_STORAGE_STATIC
Indicates static storage.

DBG_ATTRIB_STORAGE_REGISTER
Indicates storage in the register.

DBG_ATTRIB_STORAGE_ALL
Mask to extract the storage attributes from DBG_ATTRIB_FLAGS.

DBG_ATTRIB_TYPE_NONE
Indicates that there is no type modifier.

DBG_ATTRIB_TYPE_VIRTUAL
Indicates that the type of object is virtual.

DBG_ATTRIB_TYPE_CONSTANT
Indicates that the type of object is constant.

DBG_ATTRIB_TYPE_SYNCHRONIZED
Indicates that the type of object is synchronized.

DBG_ATTRIB_TYPE_VOLATILE
Indicates that the type of object is volatile.

DBG_ATTRIB_TYPE_ALL
Mask to extract the type attributes from DBG_ATTRIB_FLAGS.

DBG_ATTRIB_DATA
Indicates that this object is a data field.

DBG_ATTRIB_METHOD
Indicates that this object is a method.

DBG_ATTRIB_PROPERTY
Indicates that this object is a property.

DBG_ATTRIB_CLASS
Indicates that this object is a class.

DBG_ATTRIB_BASECLASS
Indicates that this object is a base class.

DBG_ATTRIB_INTERFACE
Indicates that this object is an interface.

DBG_ATTRIB_INNERCLASS
Indicates that this object is an inner class.

DBG_ATTRIB_MOSTDERIVED
Indicates that this object is 'most-derived'. The term "most-derived" means the actual type of the object, and not the type of its reference.

DBG_ATTRIB_CHILD_ALL
Indicates a mask of DBG_ATTRIB_DATA through DBG_ATTRIB_MOSTDERIVED.

DBG_ATTRIB_MULTI_CUSTOM_VIEWERS
Indicates that the object has multiple custom viewers associated with it.

Remarks

Note

The values in this enumeration are not actually defined in the assembly for C#. Instead, you must copy the definitions to your source file.

These flags are also used to filter children of an object, for example, when passed as an argument to EnumChildren. The values may be combined with a bitwise OR.

The DBG_ATTRIB_VALUE_CUSTOM_VIEWER flag is an indication to Visual Studio to obtain the IDebugProperty3 interface from the IDebugProperty2 interface and call GetCustomViewerList for a list of custom viewers.

Requirements

Header: msdbg.h

Namespace: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

See also