DBG_ATTRIB_FLAGS

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

#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 IDebugProperty2::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 IDebugProperty3::GetCustomViewerList for a list of custom viewers.

Requirements

Header: msdbg.h

Namespace: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

See Also

Reference

Enumerations (Visual Studio Debugging)

IDebugProperty2

IDebugProperty3

IDebugReference2

DEBUG_PROPERTY_INFO