SymTagEnum

Specifies the type of symbol.

Syntax

enum SymTagEnum {
    SymTagNull,
    SymTagExe,
    SymTagCompiland,
    SymTagCompilandDetails,
    SymTagCompilandEnv,
    SymTagFunction,
    SymTagBlock,
    SymTagData,
    SymTagAnnotation,
    SymTagLabel,
    SymTagPublicSymbol,
    SymTagUDT,
    SymTagEnum,
    SymTagFunctionType,
    SymTagPointerType,
    SymTagArrayType,
    SymTagBaseType,
    SymTagTypedef,
    SymTagBaseClass,
    SymTagFriend,
    SymTagFunctionArgType,
    SymTagFuncDebugStart,
    SymTagFuncDebugEnd,
    SymTagUsingNamespace,
    SymTagVTableShape,
    SymTagVTable,
    SymTagCustom,
    SymTagThunk,
    SymTagCustomType,
    SymTagManagedType,
    SymTagDimension,
    SymTagCallSite,
    SymTagInlineSite,
    SymTagBaseInterface,
    SymTagVectorType,
    SymTagMatrixType,
    SymTagHLSLType,
    SymTagCaller,
    SymTagCallee,
    SymTagExport,
    SymTagHeapAllocationSite,
    SymTagCoffGroup,
    SymTagInlinee,
    SymTagTaggedUnionCase,
};

Elements

Element Description
SymTagNull Indicates that the symbol has no type.
SymTagExe Indicates that the symbol is an .exe file.
there's only one SymTagExe symbol per symbol store.
It serves as the global scope and doesn't have a lexical parent.
SymTagCompiland Indicates the compiland symbol for each compiland component of the symbol store.
For native applications, SymTagCompiland symbols correspond to the object files linked into the image. For some kinds of Microsoft Intermediate Language (MSIL) images, there's one compiland per class.
SymTagCompilandDetails Indicates that the symbol contains extended attributes of the compiland.
Retrieving these properties may require loading compiland symbols.
SymTagCompilandEnv Indicates that the symbol is an environment string defined for the compiland.
SymTagFunction Indicates that the symbol is a function.
SymTagBlock Indicates that the symbol is a nested block.
SymTagData Indicates that the symbol is data.
SymTagAnnotation Indicates that the symbol is for a code annotation.
Children of this symbol are constant data strings (SymTagData, LocIsConstant, and DataIsConstant).
Most clients ignore this symbol.
SymTagLabel Indicates that the symbol is a label.
SymTagPublicSymbol Indicates that the symbol is a public symbol. For native applications, this symbol is the COFF external symbol encountered while linking the image.
SymTagUDT Indicates that the symbol is a user-defined type (structure, class, or union).
SymTagEnum Indicates that the symbol is an enumeration.
SymTagFunctionType Indicates that the symbol is a function signature type.
SymTagPointerType Indicates that the symbol is a pointer type.
SymTagArrayType Indicates that the symbol is an array type.
SymTagBaseType Indicates that the symbol is a base type.
SymTagTypedef Indicates that the symbol is a typedef that is an alias for another type.
SymTagBaseClass Indicates that the symbol is a base class of a user-defined type.
SymTagFriend Indicates that the symbol is a friend of a user-defined type.
SymTagFunctionArgType Indicates that the symbol is a function argument.
SymTagFuncDebugStart Indicates that the symbol is the end location of the function's prologue code.
SymTagFuncDebugEnd Indicates that the symbol is the beginning location of the function's epilogue code.
SymTagUsingNamespace Indicates that the symbol is a namespace name active in the current scope.
SymTagVTableShape Indicates that the symbol is a virtual table description.
SymTagVTable Indicates that the symbol is a virtual table pointer.
SymTagCustom Indicates that the symbol is a custom symbol.
Microsoft Debug Interface Access (DIA) SDK doesn't provide further interpretation of these symbols.
SymTagThunk Indicates that the symbol is a thunk used for sharing data between 16-bit and 32-bit code.
SymTagCustomType Indicates that the symbol is a custom compiler symbol.
SymTagManagedType Indicates that the symbol is in metadata.
SymTagDimension Indicates that the symbol is a FORTRAN multi-dimensional array.
SymTagCallSite Indicates that the symbol represents the call site.
SymTagInlineSite Indicates that the symbol represents the inline site.
SymTagBaseInterface Indicates that the symbol is a base interface.
SymTagVectorType Indicates that the symbol is a vector type.
SymTagMatrixType Indicates that the symbol is a matrix type.
SymTagHLSLType Indicates that the symbol is a High Level Shader Language type.
SymTagCaller Indicates that the symbol represents Profile-guided optimization (PGO) caller information.
SymTagCallee Indicates that the symbol represents PGO callee information.
SymTagExport Indicates that the symbol is an export from a DLL.
SymTagHeapAllocationSite Indicates that the symbol represents a heap allocation site (for example, a call to operator new)
SymTagCoffGroup Indicates that the symbol is a COFF group.
SymTagInlinee Indicates that the symbol represents the inlinee of an inline site (see SymTagInlineSite).
SymTagTaggedUnionCase Indicates that the symbol is a tagged union (for example, Rust's enum type)

Remarks

All symbols within a debug file have an identifying tag that specifies the symbol's type.

The IDiaSymbol::get_symTag method returns values from this enumeration.

The values in this enumeration are passed to the following methods to limit the scope of the search to a specific symbol type:

Requirements

Header: cvconst.h

See also