diff --git a/docs/debugger/debug-interface-access/common-hresult-values.md b/docs/debugger/debug-interface-access/common-hresult-values.md new file mode 100644 index 00000000000..4666a874abd --- /dev/null +++ b/docs/debugger/debug-interface-access/common-hresult-values.md @@ -0,0 +1,61 @@ +--- +title: Common HRESULT Values (Debug Interface Access SDK) +description: See a list of common HRESULT values returned by various APIs in the debug interface access (DIA) SDK. +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "constants, HRESULT, DIA SDK" + - "DIA SDK, HRESULT, constants" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# Common HRESULT values (Debug Interface Access SDK) + +The following `HRESULT` values are most commonly returned by APIs within the DIA SDK. + +Here are the values listed in numeric order by value + +|Value|Name|Description| +|-----------|-----------|-----------| +|0x806d0002|`E_PDB_USAGE`|invalid parameter or call order| +|0x806d0004|`E_PDB_FILE_SYSTEM`|Can't read or write file, out of disk space, etc.| +|0x806d0005|`E_PDB_NOT_FOUND`|PDB file not found| +|0x806d0006|`E_PDB_INVALID_SIG`|PDB signature does not match| +|0x806d0007|`E_PDB_INVALID_AGE`|PDB age mismatch| +|0x806d0008|`E_PDB_PRECOMP_REQUIRED`|Precompiled type information not found| +|0x806d0009|`E_PDB_OUT_OF_TI`|Out of debugger types| +|0x806d000c|`E_PDB_FORMAT`|Attempt to load or use a PDB with an incompatible or unsupported format| +|0x806d000d|`E_PDB_LIMIT`|Internal limit of PDB exceeded| +|0x806d000e|`E_PDB_CORRUPT`|PDB records or structure are corrupt| +|0x806d0011|`E_PDB_ILLEGAL_TYPE_EDIT`|Trying to edit types in read-only mode| +|0x806d0012|`E_PDB_INVALID_EXECUTABLE`|File is not recognized as a valid executable| +|0x806d0013|`E_PDB_DBG_NOT_FOUND`|.DBG file not found| +|0x806d0014|`E_PDB_NO_DEBUG_INFO`|No recognized debug information found| +|0x806d0015|`E_PDB_INVALID_EXE_TIMESTAMP`|Invalid timestamp of executable| +|0x806d0016|`E_PDB_RESERVED`|Undocumented error| +|0x806d0017|`E_PDB_DEBUG_INFO_NOT_IN_PDB`|Debug information is not in the PDB| +|0x806d0018|`E_PDB_SYMSRV_BAD_CACHE_PATH`|Bad cache location specified with symsrv| +|0x806d0019|`E_PDB_SYMSRV_CACHE_FULL`|symsrv cache is full| +|0x806d0064|`E_DIA_INPROLOG`|Cannot execute stack frame when in prolog| +|0x806d0065|`E_DIA_SYNTAX`|Error parsing frame program| +|0x806d0066|`E_DIA_FRAME_ACCESS`|Error accessing registers or memory| +|0x806d0067|`E_DIA_VALUE`|Error in computed value (e.g. divide by zero)| +|0x806d00C8|`E_DIA_COFF_ACCESS`|Error accessing OBJ, LIB or compiler generated PDB when querying a PDB produced by the linker with `/DEBUG:fastlink`| +|0x806d00C9|`E_DIA_COMP_PDB_ACCESS`|Error accessing compiler generated PDB| + + +## Requirements + +Header: dia2.h + +## See also + +- [Reference](../../debugger/debug-interface-access/debug-interface-access-sdk-reference.md) +- [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) + diff --git a/docs/debugger/debug-interface-access/constants-debug-interface-access-sdk.md b/docs/debugger/debug-interface-access/constants-debug-interface-access-sdk.md index 5d6e23a5909..911e0ba955f 100644 --- a/docs/debugger/debug-interface-access/constants-debug-interface-access-sdk.md +++ b/docs/debugger/debug-interface-access/constants-debug-interface-access-sdk.md @@ -1,7 +1,7 @@ --- title: Constants (Debug Interface Access SDK) description: See a list of string constants that can be used to identify various sections of a program debug database (PDB) file through the Debug Interface Access (DIA) SDK. -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -32,6 +32,7 @@ The following are declared as C/C++ macros. |`DiaTable_Dbg`|L"Dbg"| |`DiaTable_InjSrc`|L"InjectedSource"| |`DiaTable_FrameData`|L"FrameData"| +|`DiaTable_InputAssemblyFiles`|L"InputAssemblyFiles"| ## Example diff --git a/docs/debugger/debug-interface-access/cv-associationkind-e.md b/docs/debugger/debug-interface-access/cv-associationkind-e.md new file mode 100644 index 00000000000..b4012bfe7ea --- /dev/null +++ b/docs/debugger/debug-interface-access/cv-associationkind-e.md @@ -0,0 +1,48 @@ +--- +title: CV_AssociationKind_e +description: Specifies the kind of association between two symbols. +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "CV_AssociationKind_e enumeration" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# `CV_AssociationKind_e` + +Specifies the kind of association between two symbols. + +## Syntax + +```c++ +typedef enum CV_AssociationKind_e +{ + CV_ASSOCIATIONKIND_NONE, + CV_ASSOCIATIONKIND_COROUTINE +} CV_AssociationKind_e; +``` + +## Elements + +| Element | Description | +| ------------ | ---------------------------- | +| `CV_ASSOCIATIONKIND_NONE`| No associated symbol. | +| `CV_ASSOCIATIONKIND_COROUTINE`| Associated symbol is the primary coroutine function. | + +## Remarks + +Use the [`IDiaSymbol8::get_associatedSymbolKind`](../../debugger/debug-interface-access/idiasymbol8-get-associatedSymbolkind.md) method to retrieve the kind of associated between two symbols. + +## Requirements + +Header: cvconst.h + +## See also + +- [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) +- [`IDiaSymbol8::get_associatedSymbolKind`](../../debugger/debug-interface-access/idiasymbol8-get-associatedSymbolkind.md) diff --git a/docs/debugger/debug-interface-access/cv-builtin-e.md b/docs/debugger/debug-interface-access/cv-builtin-e.md new file mode 100644 index 00000000000..aedd4437ce8 --- /dev/null +++ b/docs/debugger/debug-interface-access/cv-builtin-e.md @@ -0,0 +1,87 @@ +--- +title: CV_builtin_e +description: Specifies the HLSL built in type kind. +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "CV_builtin_e enumeration" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# `CV_builtin_e` + +Specifies the HLSL built in type kind. + +## Syntax + +```c++ +typedef enum CV_builtin_e +{ + // 0x0000 - 0x01ff - Reserved. + CV_BI_INVALID = 0x0000, + + // 0x0200 - 0x03ff - HLSL types. + + CV_BI_HLSL_INTERFACE_POINTER = 0x0200, + CV_BI_HLSL_TEXTURE1D = 0x0201, + CV_BI_HLSL_TEXTURE1D_ARRAY = 0x0202, + CV_BI_HLSL_TEXTURE2D = 0x0203, + CV_BI_HLSL_TEXTURE2D_ARRAY = 0x0204, + CV_BI_HLSL_TEXTURE3D = 0x0205, + CV_BI_HLSL_TEXTURECUBE = 0x0206, + CV_BI_HLSL_TEXTURECUBE_ARRAY = 0x0207, + CV_BI_HLSL_TEXTURE2DMS = 0x0208, + CV_BI_HLSL_TEXTURE2DMS_ARRAY = 0x0209, + CV_BI_HLSL_SAMPLER = 0x020a, + CV_BI_HLSL_SAMPLERCOMPARISON = 0x020b, + CV_BI_HLSL_BUFFER = 0x020c, + CV_BI_HLSL_POINTSTREAM = 0x020d, + CV_BI_HLSL_LINESTREAM = 0x020e, + CV_BI_HLSL_TRIANGLESTREAM = 0x020f, + CV_BI_HLSL_INPUTPATCH = 0x0210, + CV_BI_HLSL_OUTPUTPATCH = 0x0211, + CV_BI_HLSL_RWTEXTURE1D = 0x0212, + CV_BI_HLSL_RWTEXTURE1D_ARRAY = 0x0213, + CV_BI_HLSL_RWTEXTURE2D = 0x0214, + CV_BI_HLSL_RWTEXTURE2D_ARRAY = 0x0215, + CV_BI_HLSL_RWTEXTURE3D = 0x0216, + CV_BI_HLSL_RWBUFFER = 0x0217, + CV_BI_HLSL_BYTEADDRESS_BUFFER = 0x0218, + CV_BI_HLSL_RWBYTEADDRESS_BUFFER = 0x0219, + CV_BI_HLSL_STRUCTURED_BUFFER = 0x021a, + CV_BI_HLSL_RWSTRUCTURED_BUFFER = 0x021b, + CV_BI_HLSL_APPEND_STRUCTURED_BUFFER = 0x021c, + CV_BI_HLSL_CONSUME_STRUCTURED_BUFFER= 0x021d, + CV_BI_HLSL_MIN8FLOAT = 0x021e, + CV_BI_HLSL_MIN10FLOAT = 0x021f, + CV_BI_HLSL_MIN16FLOAT = 0x0220, + CV_BI_HLSL_MIN12INT = 0x0221, + CV_BI_HLSL_MIN16INT = 0x0222, + CV_BI_HLSL_MIN16UINT = 0x0223, + CV_BI_HLSL_CONSTANT_BUFFER = 0x0224, + + // 0x0400 - 0xffff - Unused. + +} CV_builtin_e; +``` + +## Remarks + +Use the [`IDiaSymbol::get_builtInKind`](../../debugger/debug-interface-access/idiasymbol-get-builtinkind.md) method to retrieve the built in type kind for a HLSL symbol. + +> [!NOTE] +> The newer DXC compiler no longer produces PDBs. This API only has valid values on PDBs produced by the older *fxc.exe* compiler. + +## Requirements + +Header: cvconst.h + +## See also + +- [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) +- [`IDiaSymbol::get_builtInKind`](../../debugger/debug-interface-access/idiasymbol-get-builtinkind.md) diff --git a/docs/debugger/debug-interface-access/cv-cfl-lang.md b/docs/debugger/debug-interface-access/cv-cfl-lang.md index 0ea3fdde47e..20392d2505f 100644 --- a/docs/debugger/debug-interface-access/cv-cfl-lang.md +++ b/docs/debugger/debug-interface-access/cv-cfl-lang.md @@ -79,6 +79,9 @@ typedef enum CV_CFL_LANG { The values in this enumeration are returned by a call to the [IDiaSymbol::get_language](../../debugger/debug-interface-access/idiasymbol-get-language.md) method. +> [!NOTE] +> The newer DXC compiler no longer produces PDBs. This API only has valid values on PDBs produced by the older *fxc.exe* compiler. + ## Requirements Header: cvconst.h diff --git a/docs/debugger/debug-interface-access/cv-coroutinekind-e.md b/docs/debugger/debug-interface-access/cv-coroutinekind-e.md new file mode 100644 index 00000000000..0d6d7163092 --- /dev/null +++ b/docs/debugger/debug-interface-access/cv-coroutinekind-e.md @@ -0,0 +1,54 @@ +--- +title: CV_CoroutineKind_e +description: Get information about the CV_CoroutineKind_e enumeration type, which specifies the coroutine kind. +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "CV_CoroutineKind_e enumeration" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# CV_CoroutineKind_e + +Specifies the couroutine kind. + +## Syntax + +```c++ +typedef enum CV_CoroutineKind_e +{ + CV_COROUTINEKIND_NONE, + CV_COROUTINEKIND_PRIMARY, + CV_COROUTINEKIND_INIT, + CV_COROUTINEKIND_RESUME, + CV_COROUTINEKIND_DESTROY +} CV_CoroutineKind_e; +``` + +## Elements + +| Element | Description | +| ------------ | ---------------------------- | +| `CV_COROUTINEKIND_NONE`| Not a coroutine. | +| `CV_COROUTINEKIND_PRIMARY`| The original coroutine function. | +| `CV_COROUTINEKIND_INIT`| Initialization function, sets up the coroutine frame. | +| `CV_COROUTINEKIND_RESUME`| Resume function, contains the coroutine body code. | +| `CV_COROUTINEKIND_DESTROY`| Destroy function, tears down the coroutine frame. | + +## Remarks + +Use the [IDiaSymbol8::get_coroutineKind](../../debugger/debug-interface-access/idiasymbol8-get-coroutinekind.md) method to retrieve the coroutine kind for a coroutine function. + +## Requirements + +Header: cvconst.h + +## See also + +- [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) +- [IDiaSymbol8::get_coroutineKind](../../debugger/debug-interface-access/idiasymbol8-get-coroutinekind.md) diff --git a/docs/debugger/debug-interface-access/cv-hlslmemoryspace-e.md b/docs/debugger/debug-interface-access/cv-hlslmemoryspace-e.md new file mode 100644 index 00000000000..183610f3c96 --- /dev/null +++ b/docs/debugger/debug-interface-access/cv-hlslmemoryspace-e.md @@ -0,0 +1,50 @@ +--- +title: CV_HLSLMemorySpace_e Enumeration +description: Specifies the HLSL memory space kind. +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "CV_HLSLMemorySpace_e enumeration" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# `CV_HLSLMemorySpace_e` Enumeration + +Specifies the HLSL memory space kind. + +## Syntax + +```c++ +typedef enum CV_HLSLMemorySpace_e +{ + // HLSL specific memory spaces + + CV_HLSL_MEMSPACE_DATA = 0x00, + CV_HLSL_MEMSPACE_SAMPLER = 0x01, + CV_HLSL_MEMSPACE_RESOURCE = 0x02, + CV_HLSL_MEMSPACE_RWRESOURCE = 0x03, + + CV_HLSL_MEMSPACE_MAX = 0x0F, +} CV_HLSLMemorySpace_e; +``` + +## Remarks + +Use the [`IDiaSymbol::get_memorySpaceKind`](../../debugger/debug-interface-access/idiasymbol-get-memoryspacekind.md) method to retrieve the memory space kind for an HLSL symbol. + +> [!NOTE] +> The newer DXC compiler no longer produces PDBs. This API only has valid values on PDBs produced by the older *fxc.exe* compiler. + +## Requirements + +Header: cvconst.h + +## See also + +- [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) +- [`IDiaSymbol::get_memorySpaceKind`](../../debugger/debug-interface-access/idiasymbol-get-memoryspacekind.md) diff --git a/docs/debugger/debug-interface-access/cv-hlslreg-e.md b/docs/debugger/debug-interface-access/cv-hlslreg-e.md new file mode 100644 index 00000000000..3e0fdc0a8f0 --- /dev/null +++ b/docs/debugger/debug-interface-access/cv-hlslreg-e.md @@ -0,0 +1,83 @@ +--- +title: CV_HLSLREG_e Enumeration +description: Specifies the HLSL register type kind. +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "CV_HLSLREG_e enumeration" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# `CV_HLSLREG_e` Enumeration + +Specifies the HLSL register type. + +## Syntax + +```c++ +typedef enum CV_HLSLREG_e +{ + CV_HLSLREG_TEMP = 0, + CV_HLSLREG_INPUT = 1, + CV_HLSLREG_OUTPUT = 2, + CV_HLSLREG_INDEXABLE_TEMP = 3, + CV_HLSLREG_IMMEDIATE32 = 4, + CV_HLSLREG_IMMEDIATE64 = 5, + CV_HLSLREG_SAMPLER = 6, + CV_HLSLREG_RESOURCE = 7, + CV_HLSLREG_CONSTANT_BUFFER = 8, + CV_HLSLREG_IMMEDIATE_CONSTANT_BUFFER = 9, + CV_HLSLREG_LABEL = 10, + CV_HLSLREG_INPUT_PRIMITIVEID = 11, + CV_HLSLREG_OUTPUT_DEPTH = 12, + CV_HLSLREG_NULL = 13, + CV_HLSLREG_RASTERIZER = 14, + CV_HLSLREG_OUTPUT_COVERAGE_MASK = 15, + CV_HLSLREG_STREAM = 16, + CV_HLSLREG_FUNCTION_BODY = 17, + CV_HLSLREG_FUNCTION_TABLE = 18, + CV_HLSLREG_INTERFACE = 19, + CV_HLSLREG_FUNCTION_INPUT = 20, + CV_HLSLREG_FUNCTION_OUTPUT = 21, + CV_HLSLREG_OUTPUT_CONTROL_POINT_ID = 22, + CV_HLSLREG_INPUT_FORK_INSTANCE_ID = 23, + CV_HLSLREG_INPUT_JOIN_INSTANCE_ID = 24, + CV_HLSLREG_INPUT_CONTROL_POINT = 25, + CV_HLSLREG_OUTPUT_CONTROL_POINT = 26, + CV_HLSLREG_INPUT_PATCH_CONSTANT = 27, + CV_HLSLREG_INPUT_DOMAIN_POINT = 28, + CV_HLSLREG_THIS_POINTER = 29, + CV_HLSLREG_UNORDERED_ACCESS_VIEW = 30, + CV_HLSLREG_THREAD_GROUP_SHARED_MEMORY = 31, + CV_HLSLREG_INPUT_THREAD_ID = 32, + CV_HLSLREG_INPUT_THREAD_GROUP_ID = 33, + CV_HLSLREG_INPUT_THREAD_ID_IN_GROUP = 34, + CV_HLSLREG_INPUT_COVERAGE_MASK = 35, + CV_HLSLREG_INPUT_THREAD_ID_IN_GROUP_FLATTENED = 36, + CV_HLSLREG_INPUT_GS_INSTANCE_ID = 37, + CV_HLSLREG_OUTPUT_DEPTH_GREATER_EQUAL = 38, + CV_HLSLREG_OUTPUT_DEPTH_LESS_EQUAL = 39, + CV_HLSLREG_CYCLE_COUNTER = 40, +} CV_HLSLREG_e; +``` + +## Remarks + +Use the [`IDiaSymbol::get_registerType`](../../debugger/debug-interface-access/idiasymbol-get-registertype.md) method to retrieve the register type for an HLSL symbol. + +> [!NOTE] +> The newer DXC compiler no longer produces PDBs. This API only has valid values on PDBs produced by the older *fxc.exe* compiler. + +## Requirements + +Header: cvconst.h + +## See also + +- [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) +- [`IDiaSymbol::get_registerType`](../../debugger/debug-interface-access/idiasymbol-get-registertype.md) diff --git a/docs/debugger/debug-interface-access/cv-hreg-e.md b/docs/debugger/debug-interface-access/cv-hreg-e.md index aceb84d9129..ad165e27054 100644 --- a/docs/debugger/debug-interface-access/cv-hreg-e.md +++ b/docs/debugger/debug-interface-access/cv-hreg-e.md @@ -1,7 +1,7 @@ --- title: CV_HREG_e description: Get reference information about the CV_HREG_e enumeration type, which specifies a target register in the debug interface access SDK. -ms.date: "11/04/2016" +ms.date: "07/18/2024" ms.topic: "reference" dev_langs: - "C++" @@ -13,7 +13,7 @@ manager: mijacobs ms.subservice: debug-diagnostics --- -# CV_HREG_e +# `CV_HREG_e` Specifies a target register. @@ -409,15 +409,16 @@ enum CV_HREG_e { | ---------------------- | --------------------------------------------------------------------------- | | CV_REG_* | Registers used by Intel 80x86 and ix86 processors and p-code. | | CV_R68_* | Registers used by 68K processor. | -| CV_M4_* | Registers used by MIPS 4000 series processor. | +| CV_M4_* | Registers used by MIPS 4000 series processor. | | CV_ALPHA_* | Registers used by Digital Equipment Corporation Alpha AXP series processor. | | CV_PPC_* | Registers used by Motorola/IBM PowerPC processor. | -| CV_SH3_* and CV_SH_\\* | Registers used by Hitachi SH3 and Hitachi SH series processor. | +| CV_SH3_* and CV_SH_* | Registers used by Hitachi SH3 and Hitachi SH series processor. | | CV_ARM_* | Registers used by Advanced RISC Machine (ARM) processors. | | CV_IA64_* | Registers used by Intel IA64 series processors. | | CV_TRI_* | Registers used by Infineon Technologies TriCore processor. | | CV_AM33_* | Registers used by Matsushita/Panasonic AM33 and related processors. | | CV_M32R_* | Registers used by Mitsubishi M32R processor. | +| CV_ARM64_* | Registers used by Advanced RISC Machine (ARM) 64-bit processors. | ## Remarks @@ -425,15 +426,15 @@ Each processor type uses its own unique set of registers. The values in this enumeration are passed to the following methods: -- [IDiaStackWalkFrame::get_registerValue](../../debugger/debug-interface-access/idiastackwalkframe-get-registervalue.md) +- [`IDiaStackWalkFrame::get_registerValue`](../../debugger/debug-interface-access/idiastackwalkframe-get-registervalue.md) -- [IDiaStackWalkFrame::put_registerValue](../../debugger/debug-interface-access/idiastackwalkframe-put-registervalue.md) +- [`IDiaStackWalkFrame::put_registerValue`](../../debugger/debug-interface-access/idiastackwalkframe-put-registervalue.md) -- [IDiaStackWalkHelper::get_registerValue](../../debugger/debug-interface-access/idiastackwalkhelper-get-registervalue.md) +- [`IDiaStackWalkHelper::get_registerValue`](../../debugger/debug-interface-access/idiastackwalkhelper-get-registervalue.md) -- [IDiaStackWalkHelper::put_registerValue](../../debugger/debug-interface-access/idiastackwalkhelper-put-registervalue.md) +- [`IDiaStackWalkHelper::put_registerValue`](../../debugger/debug-interface-access/idiastackwalkhelper-put-registervalue.md) -- [IDiaStackFrame::get_registerValue](../../debugger/debug-interface-access/idiastackframe-get-registervalue.md) +- [`IDiaStackFrame::get_registerValue`](../../debugger/debug-interface-access/idiastackframe-get-registervalue.md) ## Requirements: @@ -442,8 +443,8 @@ Header: cvconst.h ## See also - [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) -- [IDiaStackWalkFrame::get_registerValue](../../debugger/debug-interface-access/idiastackwalkframe-get-registervalue.md) -- [IDiaStackWalkFrame::put_registerValue](../../debugger/debug-interface-access/idiastackwalkframe-put-registervalue.md) -- [IDiaStackWalkHelper::get_registerValue](../../debugger/debug-interface-access/idiastackwalkhelper-get-registervalue.md) -- [IDiaStackWalkHelper::put_registerValue](../../debugger/debug-interface-access/idiastackwalkhelper-put-registervalue.md) -- [IDiaStackFrame::get_registerValue](../../debugger/debug-interface-access/idiastackframe-get-registervalue.md) +- [`IDiaStackWalkFrame::get_registerValue`](../../debugger/debug-interface-access/idiastackwalkframe-get-registervalue.md) +- [`IDiaStackWalkFrame::put_registerValue`](../../debugger/debug-interface-access/idiastackwalkframe-put-registervalue.md) +- [`IDiaStackWalkHelper::get_registerValue`](../../debugger/debug-interface-access/idiastackwalkhelper-get-registervalue.md) +- [`IDiaStackWalkHelper::put_registerValue`](../../debugger/debug-interface-access/idiastackwalkhelper-put-registervalue.md) +- [`IDiaStackFrame::get_registerValue`](../../debugger/debug-interface-access/idiastackframe-get-registervalue.md) diff --git a/docs/debugger/debug-interface-access/cv-modifier-e.md b/docs/debugger/debug-interface-access/cv-modifier-e.md new file mode 100644 index 00000000000..f071cf2795b --- /dev/null +++ b/docs/debugger/debug-interface-access/cv-modifier-e.md @@ -0,0 +1,89 @@ +--- +title: CV_modifier_e +description: Get information about the CV_modifier_e enumeration type, which specifies the modifiers of types in the debug interface access SDK. +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "CV_modifier_e enumeration" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# CV_modifier_e + +Specifies the modifiers of types. + +## Syntax + +```c++ +typedef enum CV_modifier_e +{ + CV_MOD_INVALID = 0x0000, + + // Standard modifiers. + + CV_MOD_CONST = 0x0001, + CV_MOD_VOLATILE = 0x0002, + CV_MOD_UNALIGNED = 0x0003, + + // HLSL modifiers. + + CV_MOD_HLSL_UNIFORM = 0x0200, + CV_MOD_HLSL_LINE = 0x0201, + CV_MOD_HLSL_TRIANGLE = 0x0202, + CV_MOD_HLSL_LINEADJ = 0x0203, + CV_MOD_HLSL_TRIANGLEADJ = 0x0204, + CV_MOD_HLSL_LINEAR = 0x0205, + CV_MOD_HLSL_CENTROID = 0x0206, + CV_MOD_HLSL_CONSTINTERP = 0x0207, + CV_MOD_HLSL_NOPERSPECTIVE = 0x0208, + CV_MOD_HLSL_SAMPLE = 0x0209, + CV_MOD_HLSL_CENTER = 0x020a, + CV_MOD_HLSL_SNORM = 0x020b, + CV_MOD_HLSL_UNORM = 0x020c, + CV_MOD_HLSL_PRECISE = 0x020d, + CV_MOD_HLSL_UAV_GLOBALLY_COHERENT = 0x020e, + +} CV_modifier_e; +``` + +## Elements + +| Element | Description | +| ------------ | ---------------------------- | +| `CV_MOD_INVALID` | Invalid modifier (unused) | +| `CV_MOD_CONST` | C++ `const` | +| `CV_MOD_CONST` | C++ `volatile` | +| `CV_MOD_HLSL_UNIFORM` | HLSL uniform | +| `CV_MOD_HLSL_LINE` | HLSL line | +| `CV_MOD_HLSL_TRIANGLE` | HLSL triangle | +| `CV_MOD_HLSL_LINEADJ` | HLSL lineadj | +| `CV_MOD_HLSL_TRIANGLEADJ` | HLSL triangeadj | +| `CV_MOD_HLSL_LINEAR` | HLSL linear | +| `CV_MOD_HLSL_CENTROID` | HLSL centroid | +| `CV_MOD_HLSL_CONSTINTERP` | HLSL constinterp | +| `CV_MOD_HLSL_NOPERSPECTIVE` | HLSL noperspective | +| `CV_MOD_HLSL_SAMPLE` | HLSL sample | +| `CV_MOD_HLSL_CENTER` | HLSL center | +| `CV_MOD_HLSL_SNORM` | HLSL snorm | +| `CV_MOD_HLSL_UNORM` | HLSL unorm | +| `CV_MOD_HLSL_PRECISE` | HLSL precise | +| `CV_MOD_HLSL_UAV_GLOBALLY_COHERENT` | HLSL UAV globally coherent | + +## Remarks + +> [!NOTE] +> The newer DXC compiler no longer produces PDBs. The HLSL elements only have valid values on PDBs produced by the older *fxc.exe* compiler. + +## Requirements + +Header: cvconst.h + +## See also + +- [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) +- [IDiaSymbol::get_modifierValues](../../debugger/debug-interface-access/idiasymbol-get-modifiervalues.md) diff --git a/docs/debugger/debug-interface-access/cv-sourcechksum-t.md b/docs/debugger/debug-interface-access/cv-sourcechksum-t.md new file mode 100644 index 00000000000..aff7daa068c --- /dev/null +++ b/docs/debugger/debug-interface-access/cv-sourcechksum-t.md @@ -0,0 +1,51 @@ +--- +title: CV_SourceChksum_t +description: Specifies the type of source code checksum. +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "CV_SourceChksum_t enumeration" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# `CV_SourceChksum_t` + +Specifies the type of source code checksum. + +## Syntax + +```c++ +enum CV_SourceChksum_t +{ + CHKSUM_TYPE_NONE = 0, + CHKSUM_TYPE_MD5, + CHKSUM_TYPE_SHA1, + CHKSUM_TYPE_SHA_256, +}; +``` + +## Elements + +|Checksum Type|Value|CryptoAPI Label|Description| +|-------------|-----|---------------|-----------| +| `CHKSUM_TYPE_NONE` | 0 | \ | No checksum present. | +| `CHKSUM_TYPE_MD5` | 1 | `CALG_MD5` | Checksum generated with the MD5 hashing algorithm. | +| `CHKSUM_TYPE_SHA1` | 2 | `CALG_SHA1` | Checksum generated with the SHA1 hashing algorithm. | +| `CHKSUM_TYPE_SHA_256` | 3 |`CALG_SHA_256`| Checksum generated with the 256-bit SHA hashing algorithm.| + +## Remarks + +The `CryptoAPI` labels are from the [`ALG_ID`](/windows/win32/seccrypto/alg-id) enumeration. For more information on hashing algorithms, consult the `CryptoAPI` section of the Microsoft Windows SDK. + +## Requirements + +Header: cvconst.h + +## See also + +- [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) diff --git a/docs/debugger/debug-interface-access/debug-interface-access-sdk-reference.md b/docs/debugger/debug-interface-access/debug-interface-access-sdk-reference.md index d35fc894996..82126d5e4ad 100644 --- a/docs/debugger/debug-interface-access/debug-interface-access-sdk-reference.md +++ b/docs/debugger/debug-interface-access/debug-interface-access-sdk-reference.md @@ -1,7 +1,7 @@ --- description: A complete reference to all of the interfaces and supporting enumerations and structures in the DIA SDK. title: Debug Interface Access SDK Reference -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -33,6 +33,10 @@ A complete reference to all of the enumerations and structures required by the i Describes a number of strings and their labels that can be used with the interfaces. +[Common HRESULT Values (Debug Interface Access SDK)](../../debugger/debug-interface-access/common-hresult-values.md) + +Describes a number of HRESULT values that can be return with the interfaces. + ## Related Sections [Symbols and Symbol Tags](../../debugger/debug-interface-access/symbols-and-symbol-tags.md) diff --git a/docs/debugger/debug-interface-access/diatagvalue.md b/docs/debugger/debug-interface-access/diatagvalue.md new file mode 100644 index 00000000000..b5724c9c246 --- /dev/null +++ b/docs/debugger/debug-interface-access/diatagvalue.md @@ -0,0 +1,62 @@ +--- +description: Holds a value from SymTagTaggedUnionCase. +title: DiaTagValue +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "DiaTagValue structure" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# DiaTagValue + +Describes the numeric value of a discriminated union's tag. + +## Syntax + +```c++ +struct DiaTagValue { + BYTE value[16]; + BYTE valueSizeBytes; +}; +``` + +## Elements + +| Element | Description | +| ------- | ----------------------------------------------------------- | +| `value` | The integer value stored in little-endian byte ordering.| +| `valueSizeBytes` | The size in bytes of `value`. Must be one of 1, 2, 4, 8, 16 or 0 if this value is empty.| + +## Remarks + +A `DiaTagValue` can represent various values relating to discriminated or tagged unions, like Rust's enum variants. + +An alternative way to think of a `DiaTagValue` could be something like this: + +```c++ +struct DiaTagValue { + union { + uint8_t data8; + uint16_t data16; + uint32_t data32; + uint64_t data64; + uint128_t data128; + } value; + uint8_t valueSizeBytes; +}; +``` + +## Requirements + +Header: dia2.h + +## See also + +- [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) +- [IDiaSymbol11](../../debugger/debug-interface-access/idiasymbol11.md) diff --git a/docs/debugger/debug-interface-access/enumerations-and-structures.md b/docs/debugger/debug-interface-access/enumerations-and-structures.md index 3e54f1dc4b2..4fe3a9771fe 100644 --- a/docs/debugger/debug-interface-access/enumerations-and-structures.md +++ b/docs/debugger/debug-interface-access/enumerations-and-structures.md @@ -1,7 +1,7 @@ --- description: These are the enumerations and structures used by the DIA SDK. title: Enumerations and Structures -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -28,61 +28,89 @@ These are the enumerations and structures used by the Debug Interface Access (DI Specifies the symbol's basic type. -- [CV_access_e Enumeration](../../debugger/debug-interface-access/cv-access-e.md) +- [`CV_access_e` Enumeration](../../debugger/debug-interface-access/cv-access-e.md) Specifies the scope of visibility (access level) of member functions and variables. -- [CV_call_e Enumeration](../../debugger/debug-interface-access/cv-call-e.md) +- [`CV_AssociationKind_e`](../../debugger/debug-interface-access/cv-associationkind-e.md) + +Specifies the kind of association between two symbols. + +- [`CV_builtin_e` Enumeration](../../debugger/debug-interface-access/cv-builtin-e.md) + +Specifies the HLSL built in type kind. + +- [`CV_call_e` Enumeration](../../debugger/debug-interface-access/cv-call-e.md) Specifies the calling convention for a function. -- [CV_CFL_LANG Enumeration](../../debugger/debug-interface-access/cv-cfl-lang.md) +- [`CV_CFL_LANG` Enumeration](../../debugger/debug-interface-access/cv-cfl-lang.md) Specifies the source code language of the application or linked module. -- [CV_CPU_TYPE_e Enumeration](../../debugger/debug-interface-access/cv-cpu-type-e.md) +- [`CV_SourceChksum_t` Enumeration](../../debugger/debug-interface-access/cv-sourcechksum-t.md) + +Specifies the type of source code checksum. + +- [`CV_CoroutineKind_e` Enumeration](../../debugger/debug-interface-access/cv-coroutinekind-e.md) + +Specifies the coroutine kind. + +- [`CV_CPU_TYPE_e` Enumeration](../../debugger/debug-interface-access/cv-cpu-type-e.md) Specifies the target processor. -- [CV_HREG_e Enumeration](../../debugger/debug-interface-access/cv-hreg-e.md) +- [`CV_HLSLMemorySpace_e` Enumeration](../../debugger/debug-interface-access/cv-hlslmemoryspace-e.md) + +Specifies the HLSL memory space kind. + +- [`CV_HLSLREG_e` Enumeration](../../debugger/debug-interface-access/cv-hlslreg-e.md) + +Specifies the HLSL register type. + +- [`CV_HREG_e` Enumeration](../../debugger/debug-interface-access/cv-hreg-e.md) Specifies a target register. -- [DataKind Enumeration](../../debugger/debug-interface-access/datakind.md) +- [`CV_modifier_e`](../../debugger/debug-interface-access/cv-modifier-e.md) + +Specifies type modifers. + +- [`DataKind` Enumeration](../../debugger/debug-interface-access/datakind.md) Indicates the particular scope of a data value. -- [LocationType Enumeration](../../debugger/debug-interface-access/locationtype.md) +- [`LocationType` Enumeration](../../debugger/debug-interface-access/locationtype.md) Indicates the kind of location information contained in a symbol. -- [MemoryTypeEnum Enumeration](../../debugger/debug-interface-access/memorytypeenum.md) +- [`MemoryTypeEnum` Enumeration](../../debugger/debug-interface-access/memorytypeenum.md) Specifies the type of memory to access. -- [NameSearchOptions Enumeration](../../debugger/debug-interface-access/namesearchoptions.md) +- [`NameSearchOptions` Enumeration](../../debugger/debug-interface-access/namesearchoptions.md) Specifies the search options for symbol and file names. -- [StackFrameTypeEnum Enumeration](../../debugger/debug-interface-access/stackframetypeenum.md) +- [`StackFrameTypeEnum` Enumeration](../../debugger/debug-interface-access/stackframetypeenum.md) Specifies the stack frame type. -- [SymTagEnum Enumeration](../../debugger/debug-interface-access/symtagenum.md) +- [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md) Specifies the type of symbol. -- [THUNK_ORDINAL Enumeration](../../debugger/debug-interface-access/thunk-ordinal.md) +- [`THUNK_ORDINAL` Enumeration](../../debugger/debug-interface-access/thunk-ordinal.md) Designates thunk types. -- [UdtKind Enumeration](../../debugger/debug-interface-access/udtkind.md) +- [`UdtKind` Enumeration](../../debugger/debug-interface-access/udtkind.md) Describes the variety of user-defined type (UDT). ### Structures -[DiaAddressMapEntry Structure](../../debugger/debug-interface-access/diaaddressmapentry.md) +[`DiaAddressMapEntry` Structure](../../debugger/debug-interface-access/diaaddressmapentry.md) Describes an entry in an address map. diff --git a/docs/debugger/debug-interface-access/idiadatasource-get-lasterror.md b/docs/debugger/debug-interface-access/idiadatasource-get-lasterror.md index 4ba575803d6..bdeb196ad4d 100644 --- a/docs/debugger/debug-interface-access/idiadatasource-get-lasterror.md +++ b/docs/debugger/debug-interface-access/idiadatasource-get-lasterror.md @@ -1,7 +1,7 @@ --- description: Retrieves the file name for the last load error. title: "IDiaDataSource::get_lastError" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -29,11 +29,11 @@ HRESULT get_lastError ( pRetVal -[out] Returns a string that contains the .pdb file name associated with the last load error. +[out] Returns a string that contains the file name associated with the last error. ## Return Value -Returns the last error code caused by a load operation. Returns `E_INVALIDARG` if the `pRetVal` parameter is `NULL`. +Returns the last error code caused by any previous operation. Returns `E_INVALIDARG` if the `pRetVal` parameter is `NULL`. Returns `E_OUTOFMEMORY` if there is insufficient resources to allocate a BSTR ## Example @@ -45,3 +45,4 @@ HRESULT errorCode = pSource->get_lastError( &fileName ); ## See also - [IDiaDataSource](../../debugger/debug-interface-access/idiadatasource.md) +- [Common HRESULT Values (Debug Interface Access SDK)](../../debugger/debug-interface-access/common-hresult-values.md) diff --git a/docs/debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md b/docs/debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md index 02b9a3fd98e..caecf4a72f9 100644 --- a/docs/debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md +++ b/docs/debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md @@ -1,7 +1,7 @@ --- description: Opens and verifies that the program database (.pdb) file matches the signature information provided, and prepares the .pdb file as a debug data source. title: "IDiaDataSource::loadAndValidateDataFromPdb" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -52,22 +52,26 @@ If successful, returns `S_OK`; otherwise, returns an error code. The following t |Value|Description| |-----------|-----------------| -|E_PDB_NOT_FOUND|Failed to open the file, or the file has an invalid format.| -|E_PDB_FORMAT|Attempted to access a file with an obsolete format.| -|E_PDB_INVALID_SIG|Signature does not match.| -|E_PDB_INVALID_AGE|Age does not match.| -|E_INVALIDARG|Invalid parameter.| -|E_UNEXPECTED|The data source has already been prepared.| +|`E_PDB_NOT_FOUND`|Failed to open the file, or the file has an invalid format.| +|`E_PDB_FORMAT`|Attempted to access a file with an obsolete format.| +|`E_PDB_INVALID_SIG`|Signature does not match.| +|`E_PDB_INVALID_AGE`|Age does not match.| +|`E_INVALIDARG`|Invalid parameter.| +|`E_UNEXPECTED`|The data source has already been prepared.| ## Remarks A .pdb file contains both signature and age values. These values are replicated in the .exe or .dll file that matches the .pdb file. Before preparing the data source, this method verifies that the named .pdb file's signature and age match the values provided. -To load a .pdb file without validation, use the [IDiaDataSource::loadDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) method. +To load a .pdb file and validate with prefetching, use the [`IDiaDataSourceEx::loadAndValidateDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md) method. -To gain access to the data load process (through a callback mechanism), use the [IDiaDataSource::loadDataForExe](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md) method. +To load a .pdb file without validation, use the [`IDiaDataSource::loadDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) method. -To load a .pdb file directly from memory, use the [IDiaDataSource::loadDataFromIStream](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) method. +To gain access to the data load process (through a callback mechanism), use the [`IDiaDataSource::loadDataForExe`](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md) method. + +To load a .pdb file directly from memory, use the [`IDiaDataSource::loadDataFromIStream`](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) method. + +To validate a .pdb file without loading it, use the [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) method. ## Example @@ -91,7 +95,9 @@ if (FAILED(hr)) ## See also -- [IDiaDataSource](../../debugger/debug-interface-access/idiadatasource.md) -- [IDiaDataSource::loadDataForExe](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md) -- [IDiaDataSource::loadDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) -- [IDiaDataSource::loadDataFromIStream](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) +- [`IDiaDataSource`](../../debugger/debug-interface-access/idiadatasource.md) +- [`IDiaDataSource::loadDataForExe`](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md) +- [`IDiaDataSource::loadDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) +- [`IDiaDataSource::loadDataFromIStream`](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) +- [`IDiaDataSourceEx::loadAndValidateDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md) +- [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) diff --git a/docs/debugger/debug-interface-access/idiadatasource-loaddataforexe.md b/docs/debugger/debug-interface-access/idiadatasource-loaddataforexe.md index 3ad1a09e8fc..5e8feb440ce 100644 --- a/docs/debugger/debug-interface-access/idiadatasource-loaddataforexe.md +++ b/docs/debugger/debug-interface-access/idiadatasource-loaddataforexe.md @@ -1,7 +1,7 @@ --- -description: Opens and prepares the debug data associated with the .exe/.dll file. +description: Opens and prepares the debug data associated with the .exe/.dll file. title: "IDiaDataSource::loadDataForExe" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -15,7 +15,7 @@ ms.subservice: debug-diagnostics # IDiaDataSource::loadDataForExe -Opens and prepares the debug data associated with the .exe/.dll file. +Opens and prepares the debug data associated with the `.exe`/`.dll` file. ## Syntax @@ -31,11 +31,11 @@ HRESULT loadDataForExe ( executable -[in] Path to the .exe or .dll file. +[in] Path to the `.exe` or `.dll` file. searchPath -[in] Alternate path to search for debug data. +[in] Alternate paths to search for debug data. Multiple paths should be semicolon delimited. Paths may contain a trailing `\`. pCallback @@ -47,28 +47,32 @@ If successful, returns `S_OK`; otherwise, returns an error code. The following t |Value|Description| |-----------|-----------------| -|E_PDB_NOT_FOUND|Failed to open the file, or the file has an invalid format.| -|E_PDB_FORMAT|Attempted to access a file with an obsolete format.| -|E_PDB_INVALID_SIG|Signature does not match.| -|E_PDB_INVALID_AGE|Age does not match.| -|E_INVALIDARG|Invalid parameter.| -|E_UNEXPECTED|Data source has already been prepared.| +|`E_PDB_NOT_FOUND`|Failed to open the file, or the file has an invalid format.| +|`E_PDB_FORMAT`|Attempted to access a file with an obsolete format.| +|`E_PDB_INVALID_SIG`|Signature does not match.| +|`E_PDB_INVALID_AGE`|Age does not match.| +|`E_INVALIDARG`|Invalid parameter.| +|`E_UNEXPECTED`|Data source has already been prepared.| ## Remarks -The debug header of the .exe/.dll file names the associated debug data location. +The debug header of the `.exe`/`.dll` file names the associated debug data location. If you are loading debug data from a symbol server, *symsrv.dll* must be present in the same directory where either the user's application or *msdia140.dll* is installed, or it must be present in the system directory. -This method reads the debug header and then searches for and prepares the debug data. The progress of the search may, optionally, be reported and controlled through callbacks. For example, the [IDiaLoadCallback::NotifyDebugDir](../../debugger/debug-interface-access/idialoadcallback-notifydebugdir.md) is invoked when the `IDiaDataSource::loadDataForExe` method finds and processes a debug directory. +This method reads the debug header and then searches for and prepares the debug data. The progress of the search may, optionally, be reported and controlled through callbacks. For example, the [`IDiaLoadCallback::NotifyDebugDir`](../../debugger/debug-interface-access/idialoadcallback-notifydebugdir.md) is invoked when the `IDiaDataSource::loadDataForExe` method finds and processes a debug directory. -The [IDiaReadExeAtOffsetCallback](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md) and [IDiaReadExeAtRVACallback](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) interfaces allow the client application to provide alternative methods for reading data from the executable file when the file cannot be accessed directly through standard file I/O. +The [`IDiaReadExeAtOffsetCallback`](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md) and [`IDiaReadExeAtRVACallback`](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) interfaces allow the client application to provide alternative methods for reading data from the executable file when the file cannot be accessed directly through standard file I/O. -To load a .pdb file without validation, use the [IDiaDataSource::loadDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) method. +To load a `.pdb` file with prefetching of symbol records, use the [`IDiaDataSourceEx::loadDataForExeEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddataforexeex.md) method. -To validate the .pdb file against specific criteria, use the [IDiaDataSource::loadAndValidateDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) method. +To load a .pdb file without validation, use the [`IDiaDataSource::loadDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) method. -To load a .pdb file directly from memory, use the [IDiaDataSource::loadDataFromIStream](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) method. +To validate the .pdb file against specific criteria, use the [`IDiaDataSource::loadAndValidateDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) method. + +To load a .pdb file directly from memory, use the [`IDiaDataSource::loadDataFromIStream`](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) method. + +To validate a .pdb file without loading it, use the [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) method. ## Example @@ -88,12 +92,14 @@ if (FAILED(hr)) ## See also -- [IDiaDataSource](../../debugger/debug-interface-access/idiadatasource.md) -- [IDiaLoadCallback](../../debugger/debug-interface-access/idialoadcallback.md) -- [IDiaLoadCallback2](../../debugger/debug-interface-access/idialoadcallback2.md) -- [IDiaLoadCallback::NotifyDebugDir](../../debugger/debug-interface-access/idialoadcallback-notifydebugdir.md) -- [IDiaReadExeAtOffsetCallback](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md) -- [IDiaReadExeAtRVACallback](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) -- [IDiaDataSource::loadDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) -- [IDiaDataSource::loadAndValidateDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) -- [IDiaDataSource::loadDataFromIStream](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) +- [`IDiaDataSource`](../../debugger/debug-interface-access/idiadatasource.md) +- [`IDiaLoadCallback`](../../debugger/debug-interface-access/idialoadcallback.md) +- [`IDiaLoadCallback2`](../../debugger/debug-interface-access/idialoadcallback2.md) +- [`IDiaLoadCallback::NotifyDebugDir`](../../debugger/debug-interface-access/idialoadcallback-notifydebugdir.md) +- [`IDiaReadExeAtOffsetCallback`](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md) +- [`IDiaReadExeAtRVACallback`](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) +- [`IDiaDataSourceEx::loadDataForExeEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddataforexeex.md) +- [`IDiaDataSource::loadDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) +- [`IDiaDataSource::loadAndValidateDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) +- [`IDiaDataSource::loadDataFromIStream`](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) +- [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) diff --git a/docs/debugger/debug-interface-access/idiadatasource-loaddatafromcodeviewinfo.md b/docs/debugger/debug-interface-access/idiadatasource-loaddatafromcodeviewinfo.md new file mode 100644 index 00000000000..b33dfb65778 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiadatasource-loaddatafromcodeviewinfo.md @@ -0,0 +1,110 @@ +--- +description: Opens and prepares the debug data associated with the .exe/.dll file and code view information. +title: "IDiaDataSource::loadDataFromCodeViewInfo" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaDataSource::loadDataFromCodeViewInfo method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaDataSource::loadDataFromCodeViewInfo + +Opens and prepares the debug data associated with the `.exe`/`.dll` file. + +## Syntax + +```c++ +HRESULT loadDataFromCodeViewInfo ( + LPCOLESTR executable, + LPCOLESTR searchPath, + DWORD cbCvInfo, + BYTE* pbCvInfo, + IUnknown* pCallback +); +``` + +#### Parameters + +executable + +[in] Path to the `.exe` or `.dll` file. + +searchPath + +[in] Alternate paths to search for debug data. Multiple paths should be semicolon delimited. Paths may contain a trailing `\`. + +cbCvInfo + +[in] The size in bytes of the `pbCvInfo` paramter. + +pbCvInfo + +[in] The alternative debug header code view information (to replace what is normal read from the executable's IMAGE_DEBUG_DIRECTORY). Only RSDS or NB10 headers are supported. + +pCallback + +[in] An `IUnknown` interface for an object that supports a debug callback interface, such as the [`IDiaLoadCallback`](../../debugger/debug-interface-access/idialoadcallback.md), [`IDiaLoadCallback2`](../../debugger/debug-interface-access/idialoadcallback2.md), the [`IDiaReadExeAtOffsetCallback`](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md), and/or the [`IDiaReadExeAtRVACallback](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) interfaces. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. The following table shows some of the possible error codes for this method. + +|Value|Description| +|-----------|-----------------| +|`E_PDB_NOT_FOUND`|Failed to open the file, or the file has an invalid format.| +|`E_PDB_FORMAT`|Attempted to access a file with an unsupported format.| +|`E_PDB_INVALID_SIG`|Signature does not match.| +|`E_PDB_INVALID_AGE`|Age does not match.| +|`E_INVALIDARG`|Invalid parameter.| +|`E_UNEXPECTED`|Data source has already been prepared.| + +## Remarks + +The code view information, in `IMAGE_DEBUG_TYPE_CODEVIEW` format, names the associated debug data location as well as prodiving the signture and age fields to match against. + +If you are loading debug data from a symbol server, *symsrv.dll* must be present in the same directory where either the user's application or *msdia140.dll* is installed, or it must be present in the system directory. + +This method reads the provided debug header and then searches for and prepares the debug data. The progress of the search may, optionally, be reported and controlled through callbacks. For example, the [`IDiaLoadCallback::NotifyDebugDir`](../../debugger/debug-interface-access/idialoadcallback-notifydebugdir.md) is invoked when the `IDiaDataSource::loadDataForExe` method finds and processes a debug directory. + +The [`IDiaReadExeAtOffsetCallback`](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md) and [`IDiaReadExeAtRVACallback`](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) interfaces allow the client application to provide alternative methods for reading data from the executable file when the file cannot be accessed directly through standard file I/O. + +To load a `.pdb` file without validation, use the [`IDiaDataSource::loadDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) method. + +To validate the .pdb file against specific criteria, use the [`IDiaDataSource::loadAndValidateDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) method. + +To load a .pdb file directly from memory, use the [`IDiaDataSource::loadDataFromIStream`](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) method. + +To validate a .pdb file without loading it, use the [IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) method. + +## Example + +```c++ +BYTE pbCodeViewInfo[] = { + ... +}; + +HRESULT hr = pSource->loadDataFromCodeViewInfo( L"myprog.exe", L".\debug", sizeof(pbCodeViewInfo), pbCodeViewInfo, nullptr); +if (FAILED(hr)) +{ + // Report error +} +``` + +## See also + +- [`IDiaDataSource`](../../debugger/debug-interface-access/idiadatasource.md) +- [`IDiaLoadCallback`](../../debugger/debug-interface-access/idialoadcallback.md) +- [`IDiaLoadCallback2`](../../debugger/debug-interface-access/idialoadcallback2.md) +- [`IDiaLoadCallback::NotifyDebugDir`](../../debugger/debug-interface-access/idialoadcallback-notifydebugdir.md) +- [`IDiaReadExeAtOffsetCallback`](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md) +- [`IDiaReadExeAtRVACallback`](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) +- [`IDiaDataSource::loadDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) +- [`IDiaDataSource::loadAndValidateDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) +- [`IDiaDataSource::loadDataFromIStream`](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) +- [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) diff --git a/docs/debugger/debug-interface-access/idiadatasource-loaddatafromistream.md b/docs/debugger/debug-interface-access/idiadatasource-loaddatafromistream.md index 352e704f3ef..92dbe52ce98 100644 --- a/docs/debugger/debug-interface-access/idiadatasource-loaddatafromistream.md +++ b/docs/debugger/debug-interface-access/idiadatasource-loaddatafromistream.md @@ -1,7 +1,7 @@ --- description: Prepares the debug data stored in a program database (.pdb) file accessed through an in-memory data stream. title: "IDiaDataSource::loadDataFromIStream" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -27,7 +27,7 @@ HRESULT loadDataFromIStream ( #### Parameters -pIStream +`pIStream` [in] An object representing the data stream to use. @@ -37,23 +37,25 @@ If successful, returns `S_OK`; otherwise, returns an error code. The following t |Value|Description| |-----------|-----------------| -|E_PDB_FORMAT|Attempted to access a file with an obsolete format.| -|E_INVALIDARG|Invalid parameter.| -|E_UNEXPECTED|Data source has already been prepared.| +|`E_PDB_FORMAT`|Attempted to access a file with an obsolete format.| +|`E_INVALIDARG`|Invalid parameter.| +|`E_UNEXPECTED`|Data source has already been prepared.| ## Remarks -This method allows the debug data for an executable to be obtained from memory through an object. +This method allows the debug data for an executable to be obtained through an object. -To load a .pdb file without validation, use the [IDiaDataSource::loadDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) method. +To load with prefetching, use the [`IDiaDataSourceEx::loadDataFromIStreamEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafromistreamex.md) method. -To validate the .pdb file against specific criteria, use the [IDiaDataSource::loadAndValidateDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) method. +To load a .pdb file without validation, use the [`IDiaDataSource::loadDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) method. -To gain access to the data load process (through a callback mechanism), use the [IDiaDataSource::loadDataForExe](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md) method. +To validate the .pdb file against specific criteria, use the [`IDiaDataSource::loadAndValidateDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) method. + +To gain access to the data load process (through a callback mechanism), use the [`IDiaDataSource::loadDataForExe`](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md) method. ## See also -- [IDiaDataSource](../../debugger/debug-interface-access/idiadatasource.md) -- [IDiaDataSource::loadDataForExe](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md) -- [IDiaDataSource::loadDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) -- [IDiaDataSource::loadAndValidateDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) +- [`IDiaDataSource`](../../debugger/debug-interface-access/idiadatasource.md) +- [`IDiaDataSource::loadDataForExe`](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md) +- [`IDiaDataSource::loadDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) +- [`IDiaDataSource::loadAndValidateDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) diff --git a/docs/debugger/debug-interface-access/idiadatasource-loaddatafrommiscinfo.md b/docs/debugger/debug-interface-access/idiadatasource-loaddatafrommiscinfo.md new file mode 100644 index 00000000000..facafa83273 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiadatasource-loaddatafrommiscinfo.md @@ -0,0 +1,126 @@ +--- +description: Opens and prepares the debug data associated with the .exe/.dll file and miscellaneous information. +title: "IDiaDataSource::loadDataFromMiscInfo" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaDataSource::loadDataFromMiscInfo method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaDataSource::loadDataFromMiscInfo + +Opens and prepares the debug data associated with the `.exe`/`.dll` file. + +## Syntax + +```c++ +HRESULT loadDataFromMiscInfo ( + LPCOLESTR executable, + LPCOLESTR searchPath, + DWORD timeStampExe, + DWORD timeStampDbg, + DWORD sizeOfExe, + DWORD cbMiscInfo, + BYTE* pbMiscInfo, + IUnknown* pCallback +); +``` + +#### Parameters + +`executable` + +[in] Path to the `.exe` or `.dll` file. + +`searchPath` + +[in] Alternate paths to search for debug data. Multiple paths should be semicolon delimited. Paths may contain a trailing `\`. + +`timeStampExe` + +[in] Alternate timestamp for the executable image. + +`timeStampDbg` + +[in] Alternate timestamp for the debug information. + +`sizeOfExe` + +[in] Alternate size of the executable image in bytes. + +`cbMiscInfo` + +[in] Size in bytes of the `pbMiscInfo` paramter. + +`pbMiscInfo` + +[in] Alternative debug header in `IMAGE_DEBUG_MISC` format that provides the filename with the debug information. + +`pCallback` + +[in] An `IUnknown` interface for an object that supports a debug callback interface, such as the [`IDiaLoadCallback`](../../debugger/debug-interface-access/idialoadcallback.md), [`IDiaLoadCallback2`](../../debugger/debug-interface-access/idialoadcallback2.md), the [`IDiaReadExeAtOffsetCallback`](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md), and/or the [`IDiaReadExeAtRVACallback`](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) interfaces. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. The following table shows some of the possible error codes for this method. + +|Value|Description| +|-----------|-----------------| +|`E_PDB_NOT_FOUND`|Failed to open the file, or the file has an invalid format.| +|`E_PDB_FORMAT`|Attempted to access a file with an obsolete format.| +|`E_PDB_INVALID_SIG`|Signature does not match.| +|`E_PDB_INVALID_AGE`|Age does not match.| +|`E_INVALIDARG`|Invalid parameter.| +|`E_UNEXPECTED`|Data source has already been prepared.| + +## Remarks + +The pbMiscInfo replaces the debug information in the executable image and names the associated debug data location. The timestamps and size are used to match the debug information. + +If you are loading debug data from a symbol server, *symsrv.dll* must be present in the same directory where either the user's application or *msdia140.dll* is installed, or it must be present in the system directory. + +This method searches for and prepares the debug data. The progress of the search may, optionally, be reported and controlled through callbacks. For example, the [`IDiaLoadCallback::NotifyDebugDir`](../../debugger/debug-interface-access/idialoadcallback-notifydebugdir.md) is invoked when the `IDiaDataSource::loadDataForExe` method finds and processes a debug directory. + +The [`IDiaReadExeAtOffsetCallback`](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md) and [`IDiaReadExeAtRVACallback`](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) interfaces allow the client application to provide alternative methods for reading data from the executable file when the file cannot be accessed directly through standard file I/O. + +To load a .pdb file without validation, use the [`IDiaDataSource::loadDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) method. + +To validate the .pdb file against specific criteria, use the [`IDiaDataSource::loadAndValidateDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) method. + +To load a .pdb file directly from memory, use the [`IDiaDataSource::loadDataFromIStream`](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) method. + +To validate a .pdb file without loading it, use the [IDiaDataSourceEx::ValidatePdb](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) method. + +## Example + +```c++ +DWORD dwTimeStamp = 0x3BF1C039; +DWORD dwSizeImage = 0x0000A000; +BYTE pbMiscInfo[0x110] = { + ... +}; +HRESULT hr = pSource->loadDataFromMiscInfo( L"myprog.exe", L".\debug", dwTimeStamp, dwTimeStamp, dwSizeOfImage, sizeof(pbMiscInfo), pbMiscInfo, nullptr); +if (FAILED(hr)) +{ + // Report error +} +``` + +## See also + +- [`IDiaDataSource`](../../debugger/debug-interface-access/idiadatasource.md) +- [`IDiaLoadCallback`](../../debugger/debug-interface-access/idialoadcallback.md) +- [`IDiaLoadCallback2`](../../debugger/debug-interface-access/idialoadcallback2.md) +- [`IDiaLoadCallback`::NotifyDebugDir](../../debugger/debug-interface-access/idialoadcallback-notifydebugdir.md) +- [`IDiaReadExeAtOffsetCallback`](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md) +- [`IDiaReadExeAtRVACallback`](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) +- [`IDiaDataSource::loadDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md) +- [`IDiaDataSource::loadAndValidateDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) +- [`IDiaDataSource::loadDataFromIStream`](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) +- [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) diff --git a/docs/debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md b/docs/debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md index 546046f9b87..a659b2f93b1 100644 --- a/docs/debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md +++ b/docs/debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md @@ -1,7 +1,7 @@ --- description: Opens and prepares a program database (.pdb) file as a debug data source. title: "IDiaDataSource::loadDataFromPdb" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -27,7 +27,7 @@ HRESULT loadDataFromPdb ( #### Parameters -pdbPath +`pdbPath` [in] The path to the .pdb file. @@ -37,20 +37,24 @@ If successful, returns `S_OK`; otherwise, returns an error code. The following t |Value|Description| |-----------|-----------------| -|E_PDB_NOT_FOUND|Failed to open the file, or determined that the file has an invalid format.| -|E_PDB_FORMAT|Attempted to access a file with an obsolete format.| -|E_INVALIDARG|Invalid parameter.| -|E_UNEXPECTED|Data source has already been prepared.| +|`E_PDB_NOT_FOUND`|Failed to open the file, or determined that the file has an invalid format.| +|`E_PDB_FORMAT`|Attempted to access a file with an incompatible or unsupported format.| +|`E_INVALIDARG`|Invalid parameter.| +|`E_UNEXPECTED`|Data source has already been prepared.| ## Remarks This method loads the debug data directly from a .pdb file. -To validate the .pdb file against specific criteria, use the [IDiaDataSource::loadAndValidateDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) method. +To load a .pdb file with prefetching, use the [`IDiaDataSourceEx::loadDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md) method. -To gain access to the data load process (through a callback mechanism), use the [IDiaDataSource::loadDataForExe](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md) method. +To validate the .pdb file against specific criteria, use the [`IDiaDataSource::loadAndValidateDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) method. -To load a .pdb file directly from memory, use the [IDiaDataSource::loadDataFromIStream](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) method. +To gain access to the data load process (through a callback mechanism), use the [`IDiaDataSource::loadDataForExe`](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md) method. + +To load a .pdb file directly from memory, use the [`IDiaDataSource::loadDataFromIStream`](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) method. + +To validate a .pdb file without loading it, use the [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) method. ## Example @@ -64,7 +68,9 @@ if (FAILED(hr)) ## See also -- [IDiaDataSource](../../debugger/debug-interface-access/idiadatasource.md) -- [IDiaDataSource::loadDataForExe](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md) -- [IDiaDataSource::loadAndValidateDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) -- [IDiaDataSource::loadDataFromIStream](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) +- [`IDiaDataSource`](../../debugger/debug-interface-access/idiadatasource.md) +- [`IDiaDataSource::loadDataForExe`](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md) +- [`IDiaDataSource::loadAndValidateDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md) +- [`IDiaDataSource::loadDataFromIStream`](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md) +- [`IDiaDataSourceEx::loadDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md) +- [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) diff --git a/docs/debugger/debug-interface-access/idiadatasource.md b/docs/debugger/debug-interface-access/idiadatasource.md index 41270d4a4d7..0352e92fc9f 100644 --- a/docs/debugger/debug-interface-access/idiadatasource.md +++ b/docs/debugger/debug-interface-access/idiadatasource.md @@ -1,7 +1,7 @@ --- -description: Initiates access to a source of debugging symbols. +description: Initiates access to a source of debugging symbols. title: IDiaDataSource -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -27,12 +27,14 @@ The following table shows the methods of `IDiaDataSource`. |Method|Description| |------------|-----------------| -|[IDiaDataSource::get_lastError](../../debugger/debug-interface-access/idiadatasource-get-lasterror.md)|Retrieves the file name for the last load error.| -|[IDiaDataSource::loadDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md)|Opens and prepares a program database (.pdb) file as a debug data source.| -|[IDiaDataSource::loadAndValidateDataFromPdb](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md)|Opens and verifies that the program database (.pdb) file matches the signature information provided; prepares the .pdb file as a debug data source.| -|[IDiaDataSource::loadDataForExe](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md)|Opens and prepares the debug data associated with the .exe/.dll file.| -|[IDiaDataSource::loadDataFromIStream](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md)|Prepares the debug data stored in a program database (.pdb) file accessed through an in-memory data stream.| -|[IDiaDataSource::openSession](../../debugger/debug-interface-access/idiadatasource-opensession.md)|Opens a session for querying symbols.| +|[`IDiaDataSource::get_lastError`](../../debugger/debug-interface-access/idiadatasource-get-lasterror.md)|Retrieves the file name for the last load error.| +|[`IDiaDataSource::loadDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md)|Opens and prepares a program database (.pdb) file as a debug data source.| +|[`IDiaDataSource::loadAndValidateDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md)|Opens and verifies that the program database (.pdb) file matches the signature information provided; prepares the .pdb file as a debug data source.| +|[`IDiaDataSource::loadDataForExe`](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md)|Opens and prepares the debug data associated with the .exe/.dll file.| +|[`IDiaDataSource::loadDataFromIStream`](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md)|Prepares the debug data stored in a program database (.pdb) file accessed through an in-memory data stream.| +|[`IDiaDataSource::openSession`](../../debugger/debug-interface-access/idiadatasource-opensession.md)|Opens a session for querying symbols.| +|[`IDiaDataSource::loadDataFromCodeViewInfo`](../../debugger/debug-interface-access/idiadatasource-loaddatafromcodeviewinfo.md)|Opens and prepares the debug data associated with the provided CodeView information.| +|[`IDiaDataSource::loadDataFromMiscInfo`](../../debugger/debug-interface-access/idiadatasource-loaddatafrommiscinfo.md)|Opens and prepares the debug data associated with the provided debug information.| ## Remarks @@ -64,8 +66,9 @@ Header: Dia2.h Library: diaguids.lib -DLL: msdia80.dll +DLL: msdia140.dll ## See also - [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [`IDiaDataSourceEx`](../../debugger/debug-interface-access/idiadatasourceex.md) diff --git a/docs/debugger/debug-interface-access/idiadatasourceex-getstreamrawdata.md b/docs/debugger/debug-interface-access/idiadatasourceex-getstreamrawdata.md new file mode 100644 index 00000000000..23dbc10d2e0 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiadatasourceex-getstreamrawdata.md @@ -0,0 +1,82 @@ +--- +description: Retrieves the raw bytes of the named stream. +title: "IDiaDataSourceEx::getStreamRawData" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaDataSourceEx::getStreamRawData method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaDataSource::getStreamRawData + +Retrieves the raw bytes of the named stream. + +## Syntax + +```c++ +HRESULT getStreamRawData ( + LPCOLESTR stream, + ULONGLONG cbOffset, + ULONGLONG cbRead, + ULONGLONG* pcbRead, + BYTE* pbData +); +``` + +#### Parameters + +`stream` + +[in] The name of the stream within the debug information. + +`cbOffset` + +[in] The offset within the stream to begin reading data from. + +`cbRead` + +[in] The number of bytes to retrieve. + +`pcbRead` + +[out] The number of bytes actually read from the stream. + +`pbData` + +[out] The location to store the read data. On input must be at least `cbRead` bytes in size. Upon successful return `*pcbRead` bytes will be valid. + +## Return Value + +If successful, returns `S_OK`. If the named stream does not exist within the PDB, the API might fail, or it might return a length of 0. + +## Remarks + +Program Databases are made up of multiple streams of data. Some of those streams are named. You can use this method to gather information about these named streams. + +To get the size of the stream, use the [`IDiaDataSourceEx::getStreamSize`](../../debugger/debug-interface-access/idiadatasourceex-getstreamsize.md) method. + +## Example + +```c++ +ULONGLONG countBytes = 0; +LPCOLESTR stream = L"/names"; +HRESULT hr = pSource->getStreamSize( stream, &countBytes ); +if (SUCCEEDED(hr)) { + for (ULONGLONG cbOffset = 0, cbRead = 0; cbOffset < countBytes; cbOffset += cbRead) { + BYTE buffer[100]; + cbRead = 0; + hr = pSource->getStreamRawBytes( stream, cbOffset, std::min(countBytes - cbOffset, sizeof(buffer)), &cbRead, buffer); + if (SUCCEEDED(hr)) { + ... +``` + +## See also + +- [`IDiaDataSourceEx`](../../debugger/debug-interface-access/idiadatasourceex.md) +- [`IDiaDataSourceEx::getStreamSize`](../../debugger/debug-interface-access/idiadatasourceex-getstreamsize.md) diff --git a/docs/debugger/debug-interface-access/idiadatasourceex-getstreamsize.md b/docs/debugger/debug-interface-access/idiadatasourceex-getstreamsize.md new file mode 100644 index 00000000000..dc4aff16a22 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiadatasourceex-getstreamsize.md @@ -0,0 +1,59 @@ +--- +description: Retrieves the size, in bytes, of the named stream. +title: "IDiaDataSourceEx::getStreamSize" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaDataSourceEx::getStreamSize method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaDataSource::getStreamSize + +Retrieves the size, in bytes, of the named stream. + +## Syntax + +```c++ +HRESULT getStreamSize ( + LPCOLESTR stream, + ULONGLONG* pcb +); +``` + +#### Parameters + +`stream` + +[in] The name of the stream within the debug information. + +`pcb` + +[out] The size in bytes of the named stream. + +## Return Value + +If successful, returns `S_OK`. If the named stream does not exist within the PDB, the API might fail, or it i might return a length of 0. + +## Remarks + +Program Databases are made up of multiple streams of data. Some of those streams are named. You can use this method to gather information about these named streams. + +To get the data of the stream, use the [`IDiaDataSourceEx::getStreamRawData`](../../debugger/debug-interface-access/idiadatasourceex-getstreamrawdata.md) method. + +## Example + +```c++ +ULONGLONG countBytes = 0; +HRESULT hr = pSource->getStreamSize( L"/names", &countBytes ); +``` + +## See also + +- [`IDiaDataSourceEx`](../../debugger/debug-interface-access/idiadatasourceex.md) +- [`IDiaDataSourceEx::getStreamRawData`](../../debugger/debug-interface-access/idiadatasourceex-getstreamrawdata.md) diff --git a/docs/debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md b/docs/debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md new file mode 100644 index 00000000000..a8aa32cd5a7 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md @@ -0,0 +1,106 @@ +--- +description: Opens and verifies that the program database (.pdb) file matches the signature information provided, and prepares the .pdb file as a debug data source, with optional record prefetching. +title: "IDiaDataSourceEx::loadAndValidateDataFromPdbEx" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaDataSourceEx::loadAndValidateDataFromPdbEx method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaDataSourceEx::loadAndValidateDataFromPdbEx + +Opens and verifies that the program database (.pdb) file matches the signature information provided, and prepares the .pdb file as a debug data source, with optional record prefetching. + +## Syntax + +```c++ +HRESULT loadAndValidateDataFromPdbEx ( + LPCOLESTR pdbPath, + GUID* pcsig70, + DWORD sig, + DWORD age, + BOOL fPdbPrefetching +); +``` + +#### Parameters + +`pdbPath` + +[in] The path to the .pdb file. + +`pcsig70` + +[in] The globally unique identifier (GUID) signature to verify against the .pdb file signature. Only .pdb files in Visual C++ and later have GUID signatures. + +`sig` + +[in] The 32-bit signature to verify against the .pdb file signature. + +`age` + +[in] Age value to verify. The age does not necessarily correspond to any known time value, it is used to determine whether a .pdb file is out of sync with a corresponding .exe file. + +fPdbPrefetching + +[in] If set to `TRUE`, adjacent debug records are prefetched into memory, potentially replacing many smaller file I/O operations with fewer, larger operations, and thus improving overall throughput as those records are subsequently accessed, at the expense of potentially increased memory usage. If set to `FALSE`, this behaves identically to [`IDiaDataSource::loadAndValidateDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loadandvalidatedatafrompdb.md). If set to some other value, behavior is unspecified. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. The following table shows the possible return values for this method. + +|Value|Description| +|-----------|-----------------| +|`E_PDB_NOT_FOUND`|Failed to open the file, or the file has an invalid format.| +|`E_PDB_FORMAT`|Attempted to access a file with an obsolete format.| +|`E_PDB_INVALID_SIG`|Signature does not match.| +|`E_PDB_INVALID_AGE`|Age does not match.| +|`E_INVALIDARG`|Invalid parameter.| +|`E_UNEXPECTED`|The data source has already been prepared.| + +## Remarks + +A .pdb file contains both signature and age values. These values are replicated in the .exe or .dll file that matches the .pdb file. Before preparing the data source, this method verifies that the named .pdb file's signature and age match the values provided. + +To load a .pdb file without validation, use the [`IDiaDataSourceEx::loadDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md) method. + +To gain access to the data load process (through a callback mechanism), use the [`IDiaDataSourceEx::loadDataForExeEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddataforexeex.md) method. + +To load a .pdb file directly from memory, use the [`IDiaDataSourceEx::loadDataFromIStreamEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafromistreamex.md) method. + +To validate a .pdb file without loading it, use the [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) method. + +## Example + +```c++ +IDiaDataSource* pSource; // Previously created data source. +DEFINE_GUID(expectedGUIDSignature,0x1234,0x5678,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08); +DWORD expectedFileSignature = 0x12345678; +DWORD expectedAge = 128; + +HRESULT hr; +hr = pSource->loadAndValidateDataFromPdbEx( L"yprog.pdb", + &expectedGUIDSignature, + expectedFileSignature, + expectedAge, + TRUE); +if (FAILED(hr)) +{ + // Report an error +} + +``` + +## See also + +- [`IDiaDataSourceEx`](../../debugger/debug-interface-access/idiadatasourceex.md) +- [`IDiaDataSourceEx::loadDataForExeEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddataforexeex.md) +- [`IDiaDataSourceEx::loadDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md) +- [`IDiaDataSourceEx::loadDataFromIStreamEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafromistreamex.md) +- [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) diff --git a/docs/debugger/debug-interface-access/idiadatasourceex-loaddataforexeex.md b/docs/debugger/debug-interface-access/idiadatasourceex-loaddataforexeex.md new file mode 100644 index 00000000000..6a54f49c58e --- /dev/null +++ b/docs/debugger/debug-interface-access/idiadatasourceex-loaddataforexeex.md @@ -0,0 +1,107 @@ +--- +description: Opens and prepares the debug data associated with the .exe/.dll file, with optional record prefetching. +title: "IDiaDataSourceEx::loadDataForExeEx" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaDataSourceEx::loadDataForExeEx method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaDataSourceEx::loadDataForExeEx + +Opens and prepares the debug data associated with the .exe/.dll file, with optional record prefetching. + +## Syntax + +```c++ +HRESULT loadDataForExeEx ( + LPCOLESTR executable, + LPCOLESTR searchPath, + IUnknown* pCallback, + BOOL fPdbPrefetching +); +``` + +#### Parameters + +`executable` + +[in] Path to the .exe or .dll file. + +`searchPath` + +[in] Alternate path to search for debug data. Multiple paths should be semicolon delimited. Paths may contain a trailing `\`. + +`pCallback` + +[in] An `IUnknown` interface for an object that supports a debug callback interface, such as the [`IDiaLoadCallback`](../../debugger/debug-interface-access/idialoadcallback.md), [`IDiaLoadCallback2`](../../debugger/debug-interface-access/idialoadcallback2.md), the [`IDiaReadExeAtOffsetCallback`](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md), and/or the [`IDiaReadExeAtRVACallback`](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) interfaces. + +`fPdbPrefetching` + +[in] If set to `TRUE`, adjacent debug records are prefetched into memory, potentially replacing many smaller file I/O operations with fewer, larger operations, and thus improving overall throughput as those records are subsequently accessed, at the expense of potentially increased memory usage. If set to `FALSE`, this behaves identically to [`IDiaDataSource::loadDataForExe`](../../debugger/debug-interface-access/idiadatasource-loaddataforexe.md). If set to some other value, behavior is unspecified. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. The following table shows some of the possible error codes for this method. + +|Value|Description| +|-----------|-----------------| +|`E_PDB_NOT_FOUND`|Failed to open the file, or the file has an invalid format.| +|`E_PDB_FORMAT`|Attempted to access a file with an obsolete format.| +|`E_PDB_INVALID_SIG`|Signature does not match.| +|`E_PDB_INVALID_AGE`|Age does not match.| +|`E_INVALIDARG`|Invalid parameter.| +|`E_UNEXPECTED`|Data source has already been prepared.| + +## Remarks + +The debug header of the .exe/.dll file names the associated debug data location. + +If you are loading debug data from a symbol server, *symsrv.dll* must be present in the same directory where either the user's application or *msdia140.dll* is installed, or it must be present in the system directory. + +This method reads the debug header and then searches for and prepares the debug data. The progress of the search may, optionally, be reported and controlled through callbacks. For example, the [`IDiaLoadCallback::NotifyDebugDir`](../../debugger/debug-interface-access/idialoadcallback-notifydebugdir.md) is invoked when the `IDiaDataSourceEx::loadDataForExeEx` method finds and processes a debug directory. + +The [`IDiaReadExeAtOffsetCallback`](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md) and [`IDiaReadExeAtRVACallback`](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) interfaces allow the client application to provide alternative methods for reading data from the executable file when the file cannot be accessed directly through standard file I/O. + +To load a .pdb file without validation, use the [`IDiaDataSourceEx::loadDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md) method. + +To validate the .pdb file against specific criteria, use the [`IDiaDataSourceEx::loadAndValidateDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md) method. + +To load a .pdb file directly from memory, use the [`IDiaDataSourceEx::loadDataFromIStreamEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafromistreamex.md) method. + +To validate a .pdb file without loading it, use the [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) method. + +## Example + +```c++ +class MyCallBack: public IDiaLoadCallback +{ +... +}; +MyCallBack callback; +... +HRESULT hr = pSource->loadDataForExeEx( L"myprog.exe", L".\debug", (IUnknown*)&callback, TRUE); +if (FAILED(hr)) +{ + // Report error +} +``` + +## See also + +- [`IDiaDataSourceEx`](../../debugger/debug-interface-access/idiadatasourceEx.md) +- [`IDiaLoadCallback`](../../debugger/debug-interface-access/idialoadcallback.md) +- [`IDiaLoadCallback2`](../../debugger/debug-interface-access/idialoadcallback2.md) +- [`IDiaLoadCallback::NotifyDebugDir`](../../debugger/debug-interface-access/idialoadcallback-notifydebugdir.md) +- [`IDiaReadExeAtOffsetCallback`](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md) +- [`IDiaReadExeAtRVACallback`](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) +- [`IDiaDataSourceEx::loadDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md) +- [`IDiaDataSourceEx::loadAndValidateDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md) +- [`IDiaDataSourceEx::loadDataFromIStreamEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafromistreamex.md) +- [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) diff --git a/docs/debugger/debug-interface-access/idiadatasourceex-loaddatafromistreamex.md b/docs/debugger/debug-interface-access/idiadatasourceex-loaddatafromistreamex.md new file mode 100644 index 00000000000..9e1d407c037 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiadatasourceex-loaddatafromistreamex.md @@ -0,0 +1,64 @@ +--- +description: Prepares the debug data stored in a program database (.pdb) file accessed through an in-memory data stream, with optional record prefetching. +title: "IDiaDataSourceEx::loadDataFromIStreamEx" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaDataSourceEx::loadDataFromIStreamEx method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaDataSourceEx::loadDataFromIStreamEx + +Prepares the debug data stored in a program database (.pdb) file accessed through a potentially in-memory data stream, with optional record prefetching. + +## Syntax + +```c++ +HRESULT loadDataFromIStreamEx ( + IStream* pIStream, + BOOL fPdbPrefetching +); +``` + +#### Parameters + +`pIStream` + +[in] An object representing the data stream to use. + +`fPdbPrefetching` + +[in] If set to `TRUE`, adjacent debug records are prefetched into memory, potentially replacing many smaller file I/O operations with fewer, larger operations, and thus improving overall throughput as those records are subsequently accessed, at the expense of potentially increased memory usage. If set to `FALSE`, this behaves identically to [`IDiaDataSource::loadDataFromIStream`](../../debugger/debug-interface-access/idiadatasource-loaddatafromistream.md). If set to some other value, behavior is unspecified. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. The following table shows the possible return values for this method. + +|Value|Description| +|-----------|-----------------| +|`E_PDB_FORMAT`|Attempted to access a file with an obsolete format.| +|`E_INVALIDARG`|Invalid parameter.| +|`E_UNEXPECTED`|Data source has already been prepared.| + +## Remarks + +This method allows the debug data for an executable to be obtained from memory through an object. + +To load a .pdb file without validation, use the [`IDiaDataSourceEx::loadDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md) method. + +To validate the .pdb file against specific criteria, use the [`IDiaDataSourceEx::loadAndValidateDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md) method. + +To gain access to the data load process (through a callback mechanism), use the [`IDiaDataSourceEx::loadDataForExeEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddataforexeex.md) method. + +## See also + +- [`IDiaDataSourceEx`](../../debugger/debug-interface-access/idiadatasourceex.md) +- [`IDiaDataSourceEx::loadDataForExeEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddataforexeex.md) +- [`IDiaDataSourceEx::loadDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md) +- [`IDiaDataSourceEx::loadAndValidateDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md) diff --git a/docs/debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md b/docs/debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md new file mode 100644 index 00000000000..b9065fecaa8 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md @@ -0,0 +1,78 @@ +--- +description: Opens and prepares a program database (.pdb) file as a debug data source, with optional record prefetching. +title: "IDiaDataSourceEx::loadDataFromPdbEx" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaDataSourceEx::loadDataFromPdbEx method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaDataSourceEx::loadDataFromPdbEx + +Opens and prepares a program database (.pdb) file as a debug data source with optional record prefetching. + +## Syntax + +```c++ +HRESULT loadDataFromPdbEx ( + LPCOLESTR pdbPath, + BOOL fPdbPrefetching +); +``` + +#### Parameters + +`pdbPath` + +[in] The path to the .pdb file. + +`fPdbPrefetching` + +[in] If set to `TRUE`, adjacent debug records are prefetched into memory, potentially replacing many smaller file I/O operations with fewer, larger operations, and thus improving overall throughput as those records are subsequently accessed, at the expense of potentially increased memory usage. If set to `FALSE`, this behaves identically to [`IDiaDataSource::loadDataFromPdb`](../../debugger/debug-interface-access/idiadatasource-loaddatafrompdb.md). If set to some other value, behavior is unspecified. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. The following table shows the possible return values for this method. + +|Value|Description| +|-----------|-----------------| +|`E_PDB_NOT_FOUND`|Failed to open the file, or determined that the file has an invalid format.| +|`E_PDB_FORMAT`|Attempted to access a file with an incompatible or unsupported format.| +|`E_INVALIDARG`|Invalid parameter.| +|`E_UNEXPECTED`|Data source has already been prepared.| + +## Remarks + +This method loads the debug data directly from a .pdb file. + +To validate the .pdb file against specific criteria, use the [`IDiaDataSourceEx::loadAndValidateDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md) method. + +To gain access to the data load process (through a callback mechanism), use the [`IDiaDataSourceEx::loadDataForExeEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddataforexeex.md) method. + +To load a .pdb file directly from memory, use the [`IDiaDataSourceEx::loadDataFromIStreamEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafromistreamex.md) method. + +To validate a .pdb file without loading it, use the [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) method. + +## Example + +```c++ +HRESULT hr = pSource->loadDataFromPdbEx( L"myprog.pdb", TRUE ); +if (FAILED(hr)) +{ + // report error +} +``` + +## See also + +- [`IDiaDataSourceEx`](../../debugger/debug-interface-access/idiadatasourceex.md) +- [`IDiaDataSourceEx::loadDataForExeEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddataforexeex.md) +- [`IDiaDataSourceEx::loadAndValidateDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md) +- [`IDiaDataSourceEx::loadDataFromIStreamEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafromistreamex.md) +- [`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md) diff --git a/docs/debugger/debug-interface-access/idiadatasourceex-setpfnminipdberrorcallback2.md b/docs/debugger/debug-interface-access/idiadatasourceex-setpfnminipdberrorcallback2.md new file mode 100644 index 00000000000..735ad98f49e --- /dev/null +++ b/docs/debugger/debug-interface-access/idiadatasourceex-setpfnminipdberrorcallback2.md @@ -0,0 +1,55 @@ +--- +description: Sets a callback function to receive errors relating to loading secondary files referenced from fastlink PDBs. +title: "IDiaDataSourceEx::setPfnMiniPDBErrorCallback" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaDataSourceEx::setPfnMiniPDBErrorCallback method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaDataSourceEx::setPfnMiniPDBErrorCallback + +Sets a callback function to receive errors relating to loading secondary files (.OBJ, .LIB, or compiler generated .PDB files) referenced from fastlink PDBs (i.e. PDBs generated with `/DEBUG:fastlink`). + +## Syntax + +```c++ +HRESULT setpfnminipdberrorcallback2 ( + void* pvContext, + PFNMINIPDBERRORCALLBACK2 pfn +); +``` + +#### Parameters + +`pvContext` + +[in] A context parameter to be passed to the callback. + +`pfn` + +[in] A pointer to a function to be called. + +## Return Value + +If successful, returns `S_OK`. + +## Remarks + +PDBs that are generated with /DEBUG:fastlink (also sometimes call mini PDBs), do not contain all the debug information and instead must read information out of the OBJs, LIBs and compiler generated PDBs used to make the final executable. If errors occur when trying to loacte or read those files, a callback maybe set to receive additional information about the failure. + +Only one callback function may be registered at a time. Attempting to register a second function will simply replace the first. To remove the registration, simply pass a `nullptr` for both arguments. + +See [`PFNMINIPDBERRORCALLBACK2`](../../debugger/debug-interface-access/pfnminipdberrorcallback2.md) for an example of using this method. + +## See also + +- [`IDiaDataSourceEx`](../../debugger/debug-interface-access/idiadatasourceex.md) +- [`PFNMINIPDBERRORCALLBACK2`](../../debugger/debug-interface-access/pfnminipdberrorcallback2.md) +- [/DEBUG (Generate debug info)](/cpp/build/reference/debug-generate-debug-info) diff --git a/docs/debugger/debug-interface-access/idiadatasourceex-validatepdb.md b/docs/debugger/debug-interface-access/idiadatasourceex-validatepdb.md new file mode 100644 index 00000000000..d93f78c819b --- /dev/null +++ b/docs/debugger/debug-interface-access/idiadatasourceex-validatepdb.md @@ -0,0 +1,101 @@ +--- +description: Verifies that the program database (.pdb) file matches the signature information provided. +title: "IDiaDataSourceEx::ValidatePdb" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaDataSourceEx::ValidatePdb method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaDataSourceEx::ValidatePdbEx + +Verifies that the program database (.pdb) file matches the signature information provided. + +## Syntax + +```c++ +HRESULT ValidatePdb ( + LPCOLESTR pdbPath, + const GUID* pcsig70, + DWORD sig, + DWORD age, + BOOL* pfStripped +); +``` + +#### Parameters + +`pdbPath` + +[in] The path to the .pdb file. + +`pcsig70` + +[in] The globally unique identifier (GUID) signature to verify against the .pdb file signature. Only .pdb files in Visual C++ and later have GUID signatures. + +`sig` + +[in] The 32-bit signature to verify against the .pdb file signature. + +`age` + +[in] Age value to verify. The age does not necessarily correspond to any known time value, it is used to determine whether a .pdb file is out of sync with a corresponding .exe file. + +pfStripped + +[out] If the PDB matches the other information, this parameter is set to indicate whether the PDB has been stripped of private symbols. This is the same value as would be returned by [IDiaSymbol::get_isStripped](../../debugger/debug-interface-access/idiasymbol-get-isstripped.md). If the PDB does not match the other values, or this method fails, this parameter is unspecified. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. The following table shows the possible return values for this method. + +|Value|Description| +|-----------|-----------------| +|`E_PDB_NOT_FOUND`|Failed to open the file, or the file has an invalid format.| +|`E_PDB_FORMAT`|Attempted to access a file with an obsolete format.| +|`E_PDB_INVALID_SIG`|Signature does not match.| +|`E_PDB_INVALID_AGE`|Age does not match.| +|`E_INVALIDARG`|Invalid parameter.| +|`E_UNEXPECTED`|The data source has already been prepared.| + +## Remarks + +A .pdb file contains both signature and age values. These values are replicated in the .exe or .dll file that matches the .pdb file. This method verifies that the named .pdb file's signature and age match the values provided without otherwise loading the PDB or preparing it for use. + +To load a .pdb file without validation, use the [`IDiaDataSourceEx::loadDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md) method. + +To load and validate the .pdb file against specific criteria, use the [`IDiaDataSourceEx::loadAndValidateDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md) method. + +## Example + +```c++ +IDiaDataSource* pSource; // Previously created data source. +DEFINE_GUID(expectedGUIDSignature,0x1234,0x5678,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08); +DWORD expectedFileSignature = 0x12345678; +DWORD expectedAge = 128; +BOOL fStripped = FALSE; + +HRESULT hr; +hr = pSource->lValidatePdb( L"myprog.pdb", + &expectedGUIDSignature, + expectedFileSignature, + expectedAge, + &fStripped); +if (FAILED(hr)) +{ + // Report an error +} + +``` + +## See also + +- [`IDiaDataSourceEx`](../../debugger/debug-interface-access/idiadatasourceex.md) +- [`IDiaDataSourceEx::loadDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md) +- [`IDiaDataSourceEx::loadAndValidateDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md) diff --git a/docs/debugger/debug-interface-access/idiadatasourceex.md b/docs/debugger/debug-interface-access/idiadatasourceex.md new file mode 100644 index 00000000000..00ec6d424af --- /dev/null +++ b/docs/debugger/debug-interface-access/idiadatasourceex.md @@ -0,0 +1,73 @@ +--- +description: Initiates access to a source of debugging symbols. Extends IDiaDataSource. +title: IDiaDataSourceEx +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaDataSourceEx interface" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaDataSourceEx + +Initiates access to a source of debugging symbols. + +## Syntax + +`IDiaDataSourceEx : IDiaDataSource` + +## Methods in Vtable Order + +The following table shows the methods of `IDiaDataSourceEx`. + +|Method|Description| +|------------|-----------------| +|[`IDiaDataSourceEx::loadDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafrompdbex.md)|Opens and prepares a program database (.pdb) file as a debug data source.| +|[`IDiaDataSourceEx::loadAndValidateDataFromPdbEx`](../../debugger/debug-interface-access/idiadatasourceex-loadandvalidatedatafrompdbex.md)|Opens and verifies that the program database (.pdb) file matches the signature information provided; prepares the .pdb file as a debug data source.| +|[`IDiaDataSourceEx::loadDataForExeEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddataforexeex.md)|Opens and prepares the debug data associated with the .exe/.dll file.| +|[`IDiaDataSourceEx::loadDataFromIStreamEx`](../../debugger/debug-interface-access/idiadatasourceex-loaddatafromistreamex.md)|Prepares the debug data stored in a program database (.pdb) file accessed through an in-memory data stream.| +|[`IDiaDataSourceEx::getStreamSize`](../../debugger/debug-interface-access/idiadatasourceex-getstreamsize.md)|Reads the size of a named stream within this program database (.pdb) file.| +|[`IDiaDataSourceEx::getStreamRawData`](../../debugger/debug-interface-access/idiadatasourceex-getstreamrawdata.md)|Reads the data of a named stream within this program database (.pdb) file.| +|[`IDiaDataSourceEx::setPfnMiniPDBErrorCallback2`](../../debugger/debug-interface-access/idiadatasourceex-setpfnminipdberrorcallback2.md)|Set a callback function pointer for receiving error notifications relating to fastlink PDBs.| +|[`IDiaDataSourceEx::ValidatePdb`](../../debugger/debug-interface-access/idiadatasourceex-validatepdb.md)|Only verifies that the program database (.pdb) file matches the signature information provided.| + +## Remarks + +A call to one of the load methods of the `IDiaDataSourceEx` interface opens the symbol source. A successful call to the [`IDiaDataSource::openSession`](../../debugger/debug-interface-access/idiadatasource-opensession.md) method returns an [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) interface that supports querying the data source. If the load method returns a file-related error then the [`IDiaDataSource::get_lastError`](../../debugger/debug-interface-access/idiadatasource-get-lasterror.md) method return value contains the file name associated with the error. + +## Notes for Callers + +This interface is obtained by calling the `CoCreateInstance` function with the class identifier `CLSID_DiaSource` and the interface ID of `IID_IDiaDataSourceEx`, or by calling `QueryInterface` on an existing `IDiaDataSource` interface pointer. The example shows how this interface is obtained. + +## Example + +```c++ + + IDiaDataSource* pSource; +HRESULT hr = CoCreateInstance(CLSID_DiaSource, + NULL, + CLSCTX_INPROC_SERVER, + IID_IDiaDataSourceEx, + (void**) &pSource); +if (FAILED(hr)) +{ + // Report error and exit +} +``` + +## Requirements + +Header: Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) diff --git a/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-clone.md b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-clone.md new file mode 100644 index 00000000000..4df8e28c675 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-clone.md @@ -0,0 +1,40 @@ +--- +description: Creates an enumerator that contains the same enumeration state as the current input assembly files enumerator. +title: "IDiaEnumInputAssemblyFiles::Clone" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumInputAssemblyFiles::Clone method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaEnumInputAssemblyFiles::Clone + +Creates an enumerator that contains the same enumeration state as the current enumerator. + +## Syntax + +```c++ +HRESULT Clone ( + IDiaEnumInputAssemblyFiles** ppenum +); +``` + +#### Parameters + + `ppenum` + +[out] Returns an [`IDiaEnumInputAssemblyFiles`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles.md) object that contains a duplicate of the enumerator. The input assembly files are not duplicated, only the enumerator. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaEnumInputAssemblyFiles`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles.md) diff --git a/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-get-count.md b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-get-count.md new file mode 100644 index 00000000000..7ba42cb4f5c --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-get-count.md @@ -0,0 +1,41 @@ +--- +description: Retrieves the number of input assembly files. +title: "IDiaEnumInputAssemblyFiles::get_Count" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumInputAssemblyFiles::get_Count method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaEnumInputAssemblyFiles::get_Count + +Retrieves the number of input assembly files. + +## Syntax + +```c++ +HRESULT get_Count ( + LONG* pRetVal +); +``` + +#### Parameters + +`pRetVal` + +[out] Returns the number of injected sources. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaEnumInputAssemblyFiles`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles.md) +- [`IDiaEnumInputAssemblyFiles::Item`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles-item.md) diff --git a/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-get-newenum.md b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-get-newenum.md new file mode 100644 index 00000000000..47b22a609f9 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-get-newenum.md @@ -0,0 +1,40 @@ +--- +description: Retrieves the System.Runtime.InteropServices.ComTypes.IEnumVARIANT version of the innput assembly file enumerator. +title: "IDiaEnumInputAssemblyFiles::get__NewEnum" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumInputAssemblyFiles::get__NewEnum method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaEnumInputAssemblyFiles::get__NewEnum + +Retrieves the version of this enumerator. + +## Syntax + +```c++ +HRESULT get__NewEnum ( + IUnknown** pRetVal +); +``` + +#### Parameters + +`pRetVal` + +- [out, retval] Returns the `IUnknown` interface that represents the version of this enumerator. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaEnumInputAssemblyFiles`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles.md) diff --git a/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-item.md b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-item.md new file mode 100644 index 00000000000..8b3ee0e61fe --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-item.md @@ -0,0 +1,46 @@ +--- +description: Retrieves an input assembly file by means of an index. +title: "IDiaEnumInputAssemblyFiles::Item" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumInputAssemblyFiles::Item method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaEnumInputAssemblyFiles::Item + +Retrieves an input assembly file by means of an index. + +## Syntax + +```c++ +HRESULT Item ( + DWORD index, + IDiaInputAssemblyFile** file +); +``` + +#### Parameters + +`index` + +[in] Index of the [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) object to be retrieved. The index is the range 0 to `count`-1, where `count` is returned by the [IDiaEnumInputAssemblyFiles::get_Count](../../debugger/debug-interface-access/idiaenuminputassemblyfiles-get-count.md) method. + +`file` + +[out] Returns an [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) object representing the input assembly file. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaEnumInputAssemblyFiles`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles.md) +- [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) diff --git a/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-next.md b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-next.md new file mode 100644 index 00000000000..4dec4a1cc1d --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-next.md @@ -0,0 +1,51 @@ +--- +description: Retrieves a specified number of input assembly files in the enumeration sequence. +title: "IDiaEnumInputAssemblyFiles::Next" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumInputAssemblyFiles::Next method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaEnumInputAssemblyFiles::Next + +Retrieves a specified number of input assembly files in the enumeration sequence. + +## Syntax + +```c++ +HRESULT Next ( + ULONG celt, + IDiaInputAssemblyFile** rgelt, + ULONG* pceltFetched +); +``` + +#### Parameters + +`celt` + +[in] The number of injected sources in the enumerator to be retrieved. + +`rgelt` + +[out] Returns an array of [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) objects that represents the desired input assembly files. + +`pceltFetched` + +[out] Returns the number of input assembly files in the fetched enumerator. + +## Return Value + +If successful, returns `S_OK`. Returns `S_FALSE` if there are no more input assembly files. Otherwise, returns an error code. + +## See also + +- [`IDiaEnumInputAssemblyFiles`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles.md) +- [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) diff --git a/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-reset.md b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-reset.md new file mode 100644 index 00000000000..f1fbdb1e7c9 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-reset.md @@ -0,0 +1,30 @@ +--- +description: Resets an enumeration sequence of input assembly files to the beginning. +title: "IDiaEnumInputAssemblyFiles::Reset" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumInputAssemblyFiles::Reset method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaEnumInputAssemblyFiles::Reset + +Resets an enumeration sequence to the beginning. + +## Syntax + +`HRESULT Reset();` + +## Return Value + +Returns `S_OK`. + +## See also + +- [`IDiaEnumInputAssemblyFiles`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles.md) diff --git a/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-skip.md b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-skip.md new file mode 100644 index 00000000000..8389ef6c4a1 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles-skip.md @@ -0,0 +1,40 @@ +--- +description: Skips a specified number of input assembly files in an enumeration sequence. +title: "IDiaEnumInputAssemblyFiles::Skip" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumInputAssemblyFiles::Skip method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# IDiaEnumInputAssemblyFiles::Skip + +Skips a specified number of input assembly files in an enumeration sequence. + +## Syntax + +```c++ +HRESULT Skip ( + ULONG celt +); +``` + +#### Parameters + +`celt` + +[in] The number of input assembly files in the enumeration sequence to skip. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns `S_FALSE` if there are no more injected sources to skip. + +## See also + +- [`IDiaEnumInputAssemblyFiles`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles.md) diff --git a/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles.md b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles.md new file mode 100644 index 00000000000..89a678f43cc --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenuminputassemblyfiles.md @@ -0,0 +1,119 @@ +--- +description: Enumerate the input assembly files listed in the data source. +title: IDiaEnumInputAssemblyFiles +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumInputAssemblyFiles interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# IDiaEnumInputAssemblyFiles + +Enumerate the input assembly files listed in the data source. + +## Syntax + +`IDiaEnumInputAssemblyFiles : IUnknown` + +## Methods in Vtable Order + +The following table shows the methods of `IDiaEnumInputAssemblyFiles`. + +|Method|Description| +|------------|-----------------| +|[IDiaEnumInputAssemblyFiles::get__NewEnum](../../debugger/debug-interface-access/idiaenuminputassemblyfiles-get-newenum.md)|Retrieves the [IEnumVARIANT Interface](/previous-versions/windows/desktop/api/oaidl/nn-oaidl-ienumvariant) version of this enumerator.| +|[IDiaEnumInputAssemblyFiles::get_Count](../../debugger/debug-interface-access/idiaenuminputassemblyfiles-get-count.md)|Retrieves the number of input assembly files.| +|[IDiaEnumInputAssemblyFiles::Item](../../debugger/debug-interface-access/idiaenuminputassemblyfiles-item.md)|Retrieves an input assembly file by means of an index.| +|[IDiaEnumInputAssemblyFiles::Next](../../debugger/debug-interface-access/idiaenuminputassemblyfiles-next.md)|Retrieves a specified number of input assembly files in the enumeration sequence.| +|[IDiaEnumInputAssemblyFiles::Skip](../../debugger/debug-interface-access/idiaenuminputassemblyfiles-skip.md)|Skips a specified number of input assembly files in an enumeration sequence.| +|[IDiaEnumInputAssemblyFiles::Reset](../../debugger/debug-interface-access/idiaenuminputassemblyfiles-reset.md)|Resets an enumeration sequence to the beginning.| +|[IDiaEnumInputAssemblyFiles::Clone](../../debugger/debug-interface-access/idiaenuminputassemblyfiles-clone.md)|Creates an enumerator that contains the same enumeration state as the current enumerator.| + +## Remarks + +## Notes for Callers + +This interface is obtained by calling the [IDiaSession::findInputAssemblyFiles](../../debugger/debug-interface-access/idiasession-findinputassemblyfiles.md) method with the name of a specific source file or by calling the [IDiaSession::getEnumTables](../../debugger/debug-interface-access/idiasession-getenumtables.md) method with the globally unique identifier (GUID) of the `IDiaEnumInputAssemblyFiles` interface. + +## Example + +This example shows how to obtain (the `GetEnumInputAssemblyFiles` function) and use (the `DumpAllInputAssemblyFiles` function) the `IDiaEnumInputAssemblyFiles` interface. See the [`IDiaPropertyStorage`](../../debugger/debug-interface-access/idiapropertystorage.md) interface for an implementation of the `PrintPropertyStorage` function. For an alternative output, see the [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) interface. + +```c++ + +IDiaEnumInputAssemblyFiles* GetEnumInputAssemblyInputFiles(IDiaSession *pSession) +{ + IDiaEnumInputAssemblyFiles* pUnknown = NULL; + REFIID iid = __uuidof(IDiaEnumInputAssemblyFiles); + IDiaEnumTables* pEnumTables = NULL; + IDiaTable* pTable = NULL; + ULONG celt = 0; + + if (pSession->getEnumTables(&pEnumTables) != S_OK) + { + wprintf(L"ERROR - GetTable() getEnumTables\n"); + return NULL; + } + while (pEnumTables->Next(1, &pTable, &celt) == S_OK && celt == 1) + { + // There is only one table that matches the given iid + HRESULT hr = pTable->QueryInterface(iid, (void**)&pUnknown); + pTable->Release(); + if (hr == S_OK) + { + break; + } + } + pEnumTables->Release(); + return pUnknown; +} + +void DumpAllInputAssemblyFiles( IDiaSession* pSession) +{ + IDiaEnumInputAssemblyFiles* pEnumInpAsmFiles; + + pEnumInpAsmFiles = GetEnumInputAssemblyInputFiles(pSession); + if (pEnumInpAsmFiles != NULL) + { + IDiaInputAssemblyFile* pInpAsmFile; + ULONG celt = 0; + + while(pEnumInpAsmFiles->Next(1, &pInpAsmFile, &celt) == S_OK && + celt == 1) + { + IDiaPropertyStorage *pPropertyStorage; + if (pInpAsmFile->QueryInterface(__uuidof(IDiaPropertyStorage), + (void **)&pPropertyStorage) == S_OK) + { + PrintPropertyStorage(pPropertyStorage); + pPropertyStorage->Release(); + } + pInpAsmFile->Release(); + } + pEnumInpAsmFiles->Release(); + } +} +``` + +## Requirements + +Header: Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [Compile apps with .NET Native](/windows/uwp/dotnet-native/) +- [`IDiaSession::findInputAssemblyFiles`](../../debugger/debug-interface-access/idiasession-findinputassemblyfiles.md) +- [`IDiaSession::getEnumTables`](../../debugger/debug-interface-access/idiasession-getenumtables.md) +- [`IDiaPropertyStorage`](../../debugger/debug-interface-access/idiapropertystorage.md) +- [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsourcelink-clone.md b/docs/debugger/debug-interface-access/idiaenumsourcelink-clone.md new file mode 100644 index 00000000000..4ff99e99a71 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsourcelink-clone.md @@ -0,0 +1,40 @@ +--- +description: Creates an enumerator that contains the same enumeration state as the current source enumerator. +title: "IDiaEnumSourceLink::Clone" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSourceLink::Clone method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# IDiaEnumSourceLink::Clone + +Creates an enumerator that contains the same enumeration state as the current enumerator. + +## Syntax + +```c++ +HRESULT Clone( + IDiaEnumSourceLink** ppenum +); +``` + +#### Parameters + + `ppenum` + +[out] Returns an [`IDiaEnumSourceLink`](../../debugger/debug-interface-access/idiaenumsourcelink.md) object that contains a duplicate of the enumerator. The source link blobs are not duplicated, only the enumerator. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaEnumSourceLink`](../../debugger/debug-interface-access/idiaenumsourcelink.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsourcelink-count.md b/docs/debugger/debug-interface-access/idiaenumsourcelink-count.md new file mode 100644 index 00000000000..c59c5f952ea --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsourcelink-count.md @@ -0,0 +1,40 @@ +--- +description: Retrieves the number of source link blobs. +title: "IDiaEnumSourceLink::Count" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSourceLink::Count method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# IDiaEnumSourceLink::Count + +Retrieves the number of source link blobs. + +## Syntax + +```c++ +HRESULT Count( + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the number of source link blobs. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaEnumSourceLink`](../../debugger/debug-interface-access/idiaenumsourcelink.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsourcelink-next.md b/docs/debugger/debug-interface-access/idiaenumsourcelink-next.md new file mode 100644 index 00000000000..32d7fc3c6bd --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsourcelink-next.md @@ -0,0 +1,52 @@ +--- +description: Retrieves the next source link blob and advances the enumeration. +title: "IDiaEnumSourceLink::Next" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSourceLink::Next method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# IDiaEnumSourceLink::Next + +Retrieves the next source link blob and advances the enumeration. + +## Syntax + +```c++ +HRESULT Next( + DWORD cb, + DWORD* pcb, + BYTE* pb +); +``` + +#### Parameters + + `cb` + +[in] Specifies the number of bytes in the buffer `pb`. This should never be 0. + + `pcb` + +[out, optional] Returns the number of bytes written to the buffer `pb` upon success. + + `pb` + +[out] Returns the bytes for next source link blob. + +## Return Value + +If successful, returns `S_OK`. If the end of the enumeration has been reached, returns `S_FALSE`. Otherwise, returns an error code. Note that this function does **not** return an error code if `pb` is too small to return the entire source link blob, it merely silently truncates the blob. The caller should always ensure the buffer is big enough and `cb` specifies the correct size of the buffer. Call the [`IDiaEnumSourceLink::SizeOfNext`](../../debugger/debug-interface-access/idiaenumsourcelink-sizeofnext.md) method to get the needed buffer size. + +## See also + +- [`IDiaEnumSourceLink`](../../debugger/debug-interface-access/idiaenumsourcelink.md) +- [`IDiaEnumSourceLink::SizeOfNext`](../../debugger/debug-interface-access/idiaenumsourcelink-sizeofnext.md) +- [`IDiaEnumSourceLink2::Next2`](../../debugger/debug-interface-access/idiaenumsourcelink2-next2.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsourcelink-reset.md b/docs/debugger/debug-interface-access/idiaenumsourcelink-reset.md new file mode 100644 index 00000000000..9dde10c2019 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsourcelink-reset.md @@ -0,0 +1,32 @@ +--- +description: Resets an enumeration sequence to the beginning. +title: "IDiaEnumSourceLink::Reset" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSourceLink::Reset method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# IDiaEnumSourceLink::Reset + +Resets an enumeration sequence to the beginning. + +## Syntax + +```c++ +HRESULT Reset(); +``` + +## Return Value + +Returns `S_OK`. + +## See also + +- [`IDiaEnumSourceLink`](../../debugger/debug-interface-access/idiaenumsourcelink.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsourcelink-sizeofnext.md b/docs/debugger/debug-interface-access/idiaenumsourcelink-sizeofnext.md new file mode 100644 index 00000000000..6f4542c9979 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsourcelink-sizeofnext.md @@ -0,0 +1,41 @@ +--- +description: Retrieves the size of the next source link blob, without advancing the enumeration. +title: "IDiaEnumSourceLink::SizeOfNext" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSourceLink::SizeOfNext method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# IDiaEnumSourceLink::SizeOfNext + +Retrieves the size of the next source link blob, without advancing the enumeration. + +## Syntax + +```c++ +HRESULT SizeOfNext( + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the size of the next source link blob. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaEnumSourceLink`](../../debugger/debug-interface-access/idiaenumsourcelink.md) +- [`IDiaEnumSourceLink2::SizeOfNext2`](../../debugger/debug-interface-access/idiaenumsourcelink2-sizeofnext2.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsourcelink-skip.md b/docs/debugger/debug-interface-access/idiaenumsourcelink-skip.md new file mode 100644 index 00000000000..24d3b0b501d --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsourcelink-skip.md @@ -0,0 +1,40 @@ +--- +description: Skips a specified number of source link blobs in an enumeration sequence. +title: "IDiaEnumSourceLink::Skip" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSourceLink::Skip method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# IDiaEnumSourceLink::Skip + +Skips a specified number of source link blobs in an enumeration sequence. + +## Syntax + +```c++ +HRESULT Skip( + DWORD cnt +); +``` + +#### Parameters + + `cnt` + +[in] The number of source link blobs in the enumeration sequence to skip. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns `S_FALSE` if there are no more source link blobs to skip. + +## See also + +- [`IDiaEnumSourceLink`](../../debugger/debug-interface-access/idiaenumsourcelink.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsourcelink.md b/docs/debugger/debug-interface-access/idiaenumsourcelink.md new file mode 100644 index 00000000000..1801fa97053 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsourcelink.md @@ -0,0 +1,52 @@ +--- +description: Enumerates the various source link blobs contained in the data source. +title: IDiaEnumSourceLink +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSourceLink interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# IDiaEnumSourceLink + +Enumerates the various source link blobs contained in the data source. + +## Syntax + +`IDiaEnumSourceLink : IUnknown` + +## Methods in Vtable Order + +The following table shows the methods of `IDiaEnumSourceLink`. + +|Method|Description| +|------------|-----------------| +|[`IDiaEnumSourceLink::Count`](../../debugger/debug-interface-access/idiaenumsourcelink-count.md)|Retrieves the number of source link blobs.| +|[`IDiaEnumSourceLink::SizeOfNext`](../../debugger/debug-interface-access/idiaenumsourcelink-sizeofnext.md)|Retrieves the size of the next source link blob, without advancing the enumeration.| +|[`IDiaEnumSourceLink::Next`](../../debugger/debug-interface-access/idiaenumsourcelink-next.md)|Retrieves the next source link blob and advances the enumeration.| +|[`IDiaEnumSourceLink::Skip`](../../debugger/debug-interface-access/idiaenumsourcelink-skip.md)|Skips a specified number of source link blobs in an enumeration sequence.| +|[`IDiaEnumSourceLink::Reset`](../../debugger/debug-interface-access/idiaenumsourcelink-reset.md)|Resets an enumeration sequence to the beginning.| +|[`IDiaEnumSourceLink::Clone`](../../debugger/debug-interface-access/idiaenumsourcelink-clone.md)|Creates an enumerator that contains the same enumeration state as the current enumerator.| + +## Remarks + +Although [Source Link](https://github.com/dotnet/designs/blob/master/accepted/2020/diagnostics/source-link.md) is a well defined standard, the PDB and DIA SDK only have limited support for it. Specifically the DIA SDK treats the source link as a simple blob of bytes. It is the responsiblity of the caller to interpret those bytes as the correct character encoding (UTF8, ASCII, etc.), parse as a JSON file, enforce a particular schema, or use that information to map and download individual source files. + +## Notes for Callers + +Obtain this interface by calling the [`IDiaSessionEx::getSourceLinkInfo`](../../debugger/debug-interface-access/idiasessionex-getsourcelinkinfo.md) method. + +## See also + +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [`IDiaSessionEx::getSourceLinkInfo`](../../debugger/debug-interface-access/idiasessionex-getsourcelinkinfo.md) +- [Source Link](https://github.com/dotnet/designs/blob/master/accepted/2020/diagnostics/source-link.md) +- [Using Source Link](https://github.com/dotnet/sourcelink#using-source-link-in-c-projects) +- [/SOURCELINK (Include Source Link file in PDB)](/cpp/build/reference/sourcelink) +- [`IDiaEnumSourceLink2`](../../debugger/debug-interface-access/idiaenumsourcelink2.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsourcelink2-next2.md b/docs/debugger/debug-interface-access/idiaenumsourcelink2-next2.md new file mode 100644 index 00000000000..0c196eeaff9 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsourcelink2-next2.md @@ -0,0 +1,52 @@ +--- +description: Retrieves the next source link blob and advances the enumeration. Method of IDiaEnumSourceLink2. +title: "IDiaEnumSourceLink2::Next2" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSourceLink2::Next2 method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# IDiaEnumSourceLink2::Next2 + +Retrieves the next source link blob and advances the enumeration. + +## Syntax + +```c++ +HRESULT Next( + ULONGLONG cb, + ULONGLONG* pcb, + BYTE* pb +); +``` + +#### Parameters + + `cb` + +[in] Specifies the number of bytes in the buffer `pb`. This should never be 0. + + `pcb` + +[out, optional] Returns the number of bytes written to the buffer `pb` upon success. + + `pb` + +[out] Returns the bytes for next source link blob. + +## Return Value + +If successful, returns `S_OK`. If the end of the enumeration has been reached, returns `S_FALSE`. Otherwise, returns an error code. Note that this function does **not** return an error code if `pb` is too small to return the entire source link blob, it merely silently truncates the blob. The caller should always ensure the buffer is big enough and `cb` specifies the correct size of the buffer. Call the [`IDiaEnumSourceLink2::SizeOfNext2`](../../debugger/debug-interface-access/idiaenumsourcelink2-sizeofnext2.md) method to get the needed buffer size. + +## See also + +- [`IDiaEnumSourceLink2`](../../debugger/debug-interface-access/idiaenumsourcelink2.md) +- [`IDiaEnumSourceLink2::SizeOfNext2`](../../debugger/debug-interface-access/idiaenumsourcelink-sizeofnext.md) +- [`IDiaEnumSourceLink::Next`](../../debugger/debug-interface-access/idiaenumsourcelink-next.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsourcelink2-sizeofnext2.md b/docs/debugger/debug-interface-access/idiaenumsourcelink2-sizeofnext2.md new file mode 100644 index 00000000000..6f7b8b3da33 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsourcelink2-sizeofnext2.md @@ -0,0 +1,41 @@ +--- +description: Retrieves the size of the next source link blob, without advancing the enumeration. Method of IDiaEnumSourceLink2. +title: "IDiaEnumSourceLink2::SizeOfNext2" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSourceLink2::SizeOfNext2 method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# IDiaEnumSourceLink2::SizeOfNext2 + +Retrieves the size of the next source link blob, without advancing the enumeration. + +## Syntax + +```c++ +HRESULT SizeOfNext( + ULONGLONG* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the size of the next source link blob. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaEnumSourceLink2`](../../debugger/debug-interface-access/idiaenumsourcelink2.md) +- [`IDiaEnumSourceLink::SizeOfNext`](../../debugger/debug-interface-access/idiaenumsourcelink-sizeofnext.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsourcelink2.md b/docs/debugger/debug-interface-access/idiaenumsourcelink2.md new file mode 100644 index 00000000000..61926cf1102 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsourcelink2.md @@ -0,0 +1,48 @@ +--- +description: Enumerates the various source link blobs contained in the data source. Extends IDiaEnumSourceLink. +title: IDiaEnumSourceLink2 +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSourceLink2 interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# IDiaEnumSourceLink2 + +Enumerates the various source link blobs contained in the data source. + +## Syntax + +`IDiaEnumSourceLink2 : IDiaEnumSourceLink` + +## Methods in Vtable Order + +The following table shows the methods of `IDiaEnumSourceLink2`. + +|Method|Description| +|------------|-----------------| +|[`IDiaEnumSourceLink2::SizeOfNext2`](../../debugger/debug-interface-access/idiaenumsourcelink2-sizeofnext2.md)|Retrieves the size of the next source link blob, without advancing the enumeration.| +|[`IDiaEnumSourceLink2::Next2`](../../debugger/debug-interface-access/idiaenumsourcelink2-next2.md)|Retrieves the next source link blob and advances the enumeration.| + +## Remarks + +`IDiaEnumSourceLink2` extends [`IDiaEnumSourceLink`](../../debugger/debug-interface-access/idiaenumsourcelink.md) to support larger source link blobs that might exceed the limits of a `DWORD` (32-bit unsigned integer). + +## Notes for Callers + +Obtain this interface by calling the [`IDiaSessionEx::getSourceLinkInfo`](../../debugger/debug-interface-access/idiasessionex-getsourcelinkinfo.md) method then calling [`IUnknown::QueryInterface`](/windows/win32/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) with the `riid` parameter set to `IID_IDiaEnumSourceLink2`. + +## See also + +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [`IDiaSessionEx::getSourceLinkInfo`](../../debugger/debug-interface-access/idiasessionex-getsourcelinkinfo.md) +- [Source Link](https://github.com/dotnet/designs/blob/master/accepted/2020/diagnostics/source-link.md) +- [Using Source Link](https://github.com/dotnet/sourcelink#using-source-link-in-c-projects) +- [/SOURCELINK (Include Source Link file in PDB)](/cpp/build/reference/sourcelink) +- [`IDiaEnumSourceLink`](../../debugger/debug-interface-access/idiaenumsourcelink.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsymbols.md b/docs/debugger/debug-interface-access/idiaenumsymbols.md index fe7755dc5a1..00bcdb3bd71 100644 --- a/docs/debugger/debug-interface-access/idiaenumsymbols.md +++ b/docs/debugger/debug-interface-access/idiaenumsymbols.md @@ -1,5 +1,5 @@ --- -description: Enumerates the various symbols contained in the data source. +description: Enumerates the various symbols contained in the data source. title: IDiaEnumSymbols ms.date: "11/04/2016" ms.topic: "reference" diff --git a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyaddr.md b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyaddr.md index c9cc84a7664..c519a542dce 100644 --- a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyaddr.md +++ b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyaddr.md @@ -1,7 +1,7 @@ --- description: Positions the enumerator by performing a lookup by image section number and offset. title: "IDiaEnumSymbolsByAddr::symbolByAddr" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -20,26 +20,26 @@ Positions the enumerator by performing a lookup by image section number and offs ## Syntax ```c++ -HRESULT symbolByAddr ( - DWORD** isect, - DWORD** offsect, +HRESULT symbolByAddr ( + DWORD isect, + DWORD offsect, IDiaSymbol** ppsymbol ); ``` #### Parameters -isect +`isect` [in] Image section number. -offsect +`offsect` [in] Offset in section. -ppsymbol +`ppsymbol` -[out] Returns an [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) object representing the symbol found. +[out] Returns an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) object representing the symbol found. ## Return Value @@ -47,5 +47,5 @@ If successful, returns `S_OK`. Returns `S_FALSE` if the symbol could not be foun ## See also -- [IDiaEnumSymbolsByAddr](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr.md) -- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaEnumSymbolsByAddr`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyrva.md b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyrva.md index 587ccbfb970..99f6dfbe01b 100644 --- a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyrva.md +++ b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyrva.md @@ -1,7 +1,7 @@ --- description: Positions the enumerator by performing a lookup by relative virtual address (RVA). title: "IDiaEnumSymbolsByAddr::symbolByRVA" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -20,19 +20,19 @@ Positions the enumerator by performing a lookup by relative virtual address (RVA ## Syntax ```c++ -HRESULT symbolByRVA ( - DWORD** relativeVirtualAddress, +HRESULT symbolByRVA ( + DWORD relativeVirtualAddress, IDiaSymbol** ppsymbol ); ``` #### Parameters -relativeVirtualAddress +`relativeVirtualAddress` [in] Address relative to start of image. -ppsymbol +`ppsymbol` [out] Returns an [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) object representing the symbol found. @@ -42,6 +42,6 @@ If successful, returns `S_OK`. Returns `S_FALSE` if the symbol could not be foun ## See also -- [IDiaEnumSymbolsByAddr](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr.md) -- [IDiaEnumSymbolsByAddr::symbolByVA](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyva.md) -- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaEnumSymbolsByAddr`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr.md) +- [`IDiaEnumSymbolsByAddr::symbolByVA`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyva.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyva.md b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyva.md index 1753428e943..becab70ac97 100644 --- a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyva.md +++ b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyva.md @@ -1,7 +1,7 @@ --- description: Positions the enumerator by performing a lookup by virtual address (VA). title: "IDiaEnumSymbolsByAddr::symbolByVA" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -20,21 +20,21 @@ Positions the enumerator by performing a lookup by virtual address (VA). ## Syntax ```c++ -HRESULT symbolByVA ( - DWORD** virtualAddress, +HRESULT symbolByVA ( + ULONGLONG virtualAddress, IDiaSymbol** ppsymbol ); ``` #### Parameters -virtualAddress +`virtualAddress` [in] Virtual address. -ppsymbol +`ppsymbol` -[out] Returns an [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) object representing the symbol found. +[out] Returns an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) object representing the symbol found. ## Return Value @@ -42,5 +42,5 @@ If successful, returns `S_OK`. Returns `S_FALSE` if the symbol could not be foun ## See also -- [IDiaEnumSymbolsByAddr](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr.md) -- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaEnumSymbolsByAddr`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr.md b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr.md index 7c24487d71a..ceee47f7c9f 100644 --- a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr.md +++ b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr.md @@ -1,5 +1,5 @@ --- -description: Enumerates by address the various symbols contained in the data source. +description: Enumerates by address the various symbols contained in the data source. title: IDiaEnumSymbolsByAddr ms.date: "11/04/2016" ms.topic: "reference" diff --git a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-nextex.md b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-nextex.md new file mode 100644 index 00000000000..44ae774a5e7 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-nextex.md @@ -0,0 +1,62 @@ +--- +description: "Retrieves the next symbols in order by address. Method of IDiaEnumSymbolsByAddr2." +title: "IDiaEnumSymbolsByAddr2::NextEx" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSymbolsByAddr2::NextEx method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- +# IDiaEnumSymbolsByAddr2::NextEx + +Retrieves the next symbols in order by address. + +## Syntax + +```C++ +HRESULT NextEx ( + BOOL fPromoteBlockSym, + ULONG celt, + IDiaSymbol** rgelt, + ULONG* pceltFetched +); +``` + +#### Parameters + + `fPromoteBlockSym` + +[in] Whether or not to enumerate SymTagBlock symbols or promote them to an outer/parent symbol (like SymTagFuncton or SymTagPublicSymbol). If `FALSE` returns unpromoted SymTagBlock. Otherwise behaves identically to [`IDiaEnumSymbolsByAddr::Next`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr-next.md) + +[in] + + `celt` + +[in] The number of symbols in the enumerator to be retrieved. + + `rgelt` + +[out] An array that is to be filled in with the [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) object that represent the desired symbols. + + `pceltFetched` + +[out] Returns the number of symbols in the fetched enumerator. + +## Return Value + + If successful, returns `S_OK`. Returns `S_FALSE` if there are no more symbols. Otherwise, returns an error code. + +## Remarks + + This method updates the enumerator position by the number of elements fetched. + +## See also + +- [`IDiaEnumSymbolsByAddr::Next`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr-next.md) +- [`IDiaEnumSymbolsByAddr2`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr2.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-prevex.md b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-prevex.md new file mode 100644 index 00000000000..97ea1221020 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-prevex.md @@ -0,0 +1,60 @@ +--- +description: "Retrieves the previous symbols in order by address. Method of IDiaEnumSymbolsByAddr2." +title: "IDiaEnumSymbolsByAddr2::PrevEx" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSymbolsByAddr2::PrevEx method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- +# IDiaEnumSymbolsByAddr2::PrevEx + +Retrieves the previous symbols in order by address. + +## Syntax + +```C++ +HRESULT PrevEx ( + BOOL fPromoteBlockSym, + ULONG celt, + IDiaSymbol** rgelt, + ULONG* pceltFetched +); +``` + +#### Parameters + + `fPromoteBlockSym` + +[in] Whether or not to enumerate SymTagBlock symbols or promote them to an outer/parent symbol (like SymTagFuncton or SymTagPublicSymbol). If `FALSE` returns unpromoted SymTagBlock. Otherwise behaves identically to [`IDiaEnumSymbolsByAddr::Prev`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr-prev.md) + + `celt` + +[in] The number of symbols in the enumerator to be retrieved. + + `rgelt` + +[out] An array that is to be filled in with [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) objects that represent the desired symbols. + + `pceltFetched` + +[out] Returns the number of symbols in the fetched enumerator. + +## Return Value + + If successful, returns `S_OK`. Returns `S_FALSE` if there are no previous symbols. Otherwise, returns an error code. + +## Remarks + + This method updates the enumerator position by the number of elements fetched. + +## See also + +- [`IDiaEnumSymbolsByAddr::Prev`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr-prev.md) +- [`IDiaEnumSymbolsByAddr2`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr2.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-symbolbyaddrex.md b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-symbolbyaddrex.md new file mode 100644 index 00000000000..92d06bc138d --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-symbolbyaddrex.md @@ -0,0 +1,56 @@ +--- +description: "Positions the enumerator by performing a lookup by image section number and offset. Method of IDiaEnumSymbolsByAddr2." +title: "IDiaEnumSymbolsByAddr2::symbolByAddrEx" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSymbolsByAddr2::symbolByAddrEx method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- +# IDiaEnumSymbolsByAddr2::symbolByAddr + +Positions the enumerator by performing a lookup by image section number and offset. + +## Syntax + +```C++ +HRESULT symbolByAddrEx ( + BOOL fPromoteBlockSym, + DWORD isect, + DWORD offsect, + IDiaSymbol** ppsymbol +); +``` + +#### Parameters + + `fPromoteBlockSym` + +[in] Whether or not to enumerate SymTagBlock symbols or promote them to an outer/parent symbol (like SymTagFuncton or SymTagPublicSymbol). If `FALSE` returns unpromoted SymTagBlock. Otherwise behaves identically to [`IDiaEnumSymbolsByAddr::symbolByAddr`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyaddr.md) + + `isect` + +[in] Image section number. + + `offsect` + +[in] Offset in section. + + `ppsymbol` + +[out] Returns an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) object representing the symbol found. + +## Return Value + + If successful, returns `S_OK`. Returns `S_FALSE` if the symbol could not be found. Otherwise, returns an error code. + +## See also + +- [`IDiaEnumSymbolsByAddr::symbolByAddr`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyaddr.md) +- [`IDiaEnumSymbolsByAddr2`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr2.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-symbolbyrvaex.md b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-symbolbyrvaex.md new file mode 100644 index 00000000000..4c9b0fa80fa --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-symbolbyrvaex.md @@ -0,0 +1,52 @@ +--- +description: "Positions the enumerator by performing a lookup by relative virtual address (RVA). Method of IDiaEnumSymbolsByAddr2." +title: "IDiaEnumSymbolsByAddr2::symbolByRVAEx" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSymbolsByAddr2::symbolByRVAEx method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- +# IDiaEnumSymbolsByAddr2::symbolByRVAEx + +Positions the enumerator by performing a lookup by relative virtual address (RVA). + +## Syntax + +```C++ +HRESULT symbolByRVAEx ( + BOOL fPromoteBlockSym, + DWORD relativeVirtualAddress, + IDiaSymbol** ppsymbol +); +``` + +#### Parameters + + `fPromoteBlockSym` + +[in] Whether or not to enumerate SymTagBlock symbols or promote them to an outer/parent symbol (like SymTagFuncton or SymTagPublicSymbol). If `FALSE` returns unpromoted SymTagBlock. Otherwise behaves identically to [`IDiaEnumSymbolsByAddr::symbolByRVA`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyrva.md) + + `relativeVirtualAddress` + +[in] Address relative to start of image. + + `ppsymbol` + +[out] Returns an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) object representing the symbol found. + +## Return Value + + If successful, returns `S_OK`. Returns `S_FALSE` if the symbol could not be found. Otherwise, returns an error code. + +## See also + +- [`IDiaEnumSymbolsByAddr::symbolByRVA`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyrva.md) +- [`IDiaEnumSymbolsByAddr2`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr2.md) +- [`IDiaEnumSymbolsByAddr2::symbolByVAEx`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr2-symbolbyvaex.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-symbolbyvaex.md b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-symbolbyvaex.md new file mode 100644 index 00000000000..c274f41b8aa --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2-symbolbyvaex.md @@ -0,0 +1,51 @@ +--- +description: "Positions the enumerator by performing a lookup by virtual address (VA). Method of IDiaEnumSymbolsByAddr2." +title: "IDiaEnumSymbolsByAddr2::symbolByVAEx" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSymbolsByAddr2::symbolByVAEx method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- +# IDiaEnumSymbolsByAddr2::symbolByVAEx + +Positions the enumerator by performing a lookup by virtual address (VA). + +## Syntax + +```C++ +HRESULT symbolByVA ( + BOOL fPromoteBlockSym, + ULONGLONG virtualAddress, + IDiaSymbol** ppsymbol +); +``` + +#### Parameters + + `fPromoteBlockSym` + +[in] Whether or not to enumerate SymTagBlock symbols or promote them to an outer/parent symbol (like SymTagFuncton or SymTagPublicSymbol). If `FALSE` returns unpromoted SymTagBlock. Otherwise behaves identically to [`IDiaEnumSymbolsByAddr::symbolByVA`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyva.md) + + `virtualAddress` + +[in] Virtual address. + + `ppsymbol` + +[out] Returns an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) object representing the symbol found. + +## Return Value + + If successful, returns `S_OK`. Returns `S_FALSE` if the symbol could not be found. Otherwise, returns an error code. + +## See also + +- [`IDiaEnumSymbolsByAddr::symbolByVA`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr-symbolbyva.md) +- [`IDiaEnumSymbolsByAddr2`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr2.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2.md b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2.md new file mode 100644 index 00000000000..a69b55abaa9 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiaenumsymbolsbyaddr2.md @@ -0,0 +1,110 @@ +--- +description: "Enumerates by address the various symbols contained in the data source. Extends IDiaEnumSymbolsByAddr." +title: "IDiaEnumSymbolsByAddr2" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaEnumSymbolsbyAddr2 interface" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- +# IDiaEnumSymbolsByAddr2 + +Enumerates by address the various symbols contained in the data source. + +## Syntax + +``` +IDiaEnumSymbolsByAddr2 : IDiaEnumSymbolsByAdd +``` + +## Methods in Vtable Order + +The following table shows the methods of `IDiaEnumSymbolsByAddr2`. + +|Method|Description| +|------------|-----------------| +|[`IDiaEnumSymbolsByAddr2::symbolByAddrEx`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr2-symbolbyaddrex.md)|Positions the enumerator by performing a lookup by section and offset.| +|[`IDiaEnumSymbolsByAddr2::symbolByRVAEx`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr2-symbolbyrvaex.md)|Positions the enumerator by performing a lookup by relative virtual address (RVA).| +|[`IDiaEnumSymbolsByAddr2::symbolByVAEx`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr2-symbolbyvaex.md)|Positions the enumerator by performing a lookup by virtual address (VA).| +|[`IDiaEnumSymbolsByAddr2::NextEx`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr2-nextex.md)|Retrieves the next symbols in order by address. Updates the enumerator position by number of elements fetched.| +|[`IDiaEnumSymbolsByAddr2::PrevEx`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr2-prevex.md)|Retrieves the previous symbols in order by address. Updates the enumerator position by number of elements fetched.| + +## Remarks + +This interface provides symbols grouped by address. To work with symbols grouped by type, for example `SymTagUDT` (user-defined type) or `SymTagBaseClass`, use the [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) interface. + +## Notes for callers + +Obtain this interface by calling the [`IDiaSession::getSymbolsByAddr`](../../debugger/debug-interface-access/idiasession-getsymbolsbyaddr.md) method and then calling [`IUnknown::QueryInterface`](/windows/win32/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) with the `riid` parameter set to `IID_IDiaEnumSymbolsByAddr2`. + +## Example + +This function displays the name and address of all symbols ordered by relative virtual address. + +```C++ +void ShowSymbolsByAddress(IDiaSession *pSession) +{ + CComPtr pEnumByAddr; + if ( FAILED( psession->getSymbolsByAddr( &pEnumByAddr ) ) ) + { + Fatal( "getSymbolsByAddr" ); + } + CComPtr pEnumByAddr2; + if ( FAILED( pEnumByAddr->QueryInterface( IID_IDiaEnumSymbolsByAddr2, &pEnumByAddr2 ) ) ) + { + Fatal( "getSymbolsByAddr" ); + } + CComPtr pSym; + if ( FAILED( pEnumByAddr2->symbolByAddrEx( FALSE, 1, 0, &pSym ) ) ) + { + Fatal( "symbolByAddr" ); + } + DWORD rvaLast = 0; + if ( pSym->get_relativeVirtualAddress( &rvaLast ) == S_OK ) + { + pSym = 0; + if ( FAILED( pEnumByAddr2->symbolByRVAEx( FALSE, rvaLast, &pSym ) ) ) + { + Fatal( "symbolByAddr" ); + } + printf( "Symbols in order\n" ); + do + { + CDiaBSTR name; + if ( pSym->get_name( &name ) != S_OK ) + { + printf( "\t0x%08X (%ws) \n", rvaLast ); + } + else + { + printf( "\t0x%08X %ws\n", rvaLast, name ); + } + pSym = 0; + celt = 0; + if ( FAILED( hr = pEnumByAddr2->NextEx( FALSE, 1, &pSym, &celt ) ) ) + { + break; + } + } while ( celt == 1 ); + } +} +``` + +## Requirements + +Header: Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [`IDiaSession::getSymbolsByAddr`](../../debugger/debug-interface-access/idiasession-getsymbolsbyaddr.md) +- [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) diff --git a/docs/debugger/debug-interface-access/idiainputassemblyfile-get-filename.md b/docs/debugger/debug-interface-access/idiainputassemblyfile-get-filename.md new file mode 100644 index 00000000000..30af9cab5bb --- /dev/null +++ b/docs/debugger/debug-interface-access/idiainputassemblyfile-get-filename.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves the orginal assembly file name." +title: "IDiaInputAssemblyFile::get_fileName" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaInputAssemblyFile::get_fileName method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaInputAssemblyFile::get_fileName + +Retrieves the orginal assembly file name. + +## Syntax + +```C++ +HRESULT get_fileName( + BSTR* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the the original filename of the input assembly. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) +- [Compile apps with .NET Native](/windows/uwp/dotnet-native/) diff --git a/docs/debugger/debug-interface-access/idiainputassemblyfile-get-index.md b/docs/debugger/debug-interface-access/idiainputassemblyfile-get-index.md new file mode 100644 index 00000000000..c3ec994ffe5 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiainputassemblyfile-get-index.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves the file index." +title: "IDiaInputAssemblyFile::get_index" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaInputAssemblyFile::get_index method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaInputAssemblyFile::get_index + +Retrieves the file index. + +## Syntax + +```C++ +HRESULT get_index( + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the index of this input assembly file within the .NET Native binary. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) +- [Compile apps with .NET Native](/windows/uwp/dotnet-native/) diff --git a/docs/debugger/debug-interface-access/idiainputassemblyfile-get-pdbavailableatilmerge.md b/docs/debugger/debug-interface-access/idiainputassemblyfile-get-pdbavailableatilmerge.md new file mode 100644 index 00000000000..c3fa4e8a826 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiainputassemblyfile-get-pdbavailableatilmerge.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag that indicates whether the PDB was available at the creation of the .Net Native binary." +title: "IDiaInputAssemblyFile::get_pdbAvailableAtILMerge" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaInputAssemblyFile::get_pdbAvailableAtILMerge method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaInputAssemblyFile::get_pdbAvailableAtILMerge + +Retrieves a flag that indicates whether the PDB was available at the creation of the .Net Native binary. + +## Syntax + +```C++ +HRESULT get_pdbAvailableAtILMerge( + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the `TRUE` if the PDB was available at the creation of the .Net Native binary; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) +- [Compile apps with .NET Native](/windows/uwp/dotnet-native/) diff --git a/docs/debugger/debug-interface-access/idiainputassemblyfile-get-timestamp.md b/docs/debugger/debug-interface-access/idiainputassemblyfile-get-timestamp.md new file mode 100644 index 00000000000..5270620b280 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiainputassemblyfile-get-timestamp.md @@ -0,0 +1,42 @@ +--- +description: "Retrieves the time stamp." +title: "IDiaInputAssemblyFile::get_timestamp" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaInputAssemblyFile::get_timestamp method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaInputAssemblyFile::get_timestamp + +Retrieves the time stamp. + +## Syntax + +```C++ +HRESULT get_timestamp( + DWORD* pRetVal +); +``` + +#### Parameters + `pRetVal` + +[out] Returns the `TimeDateStamp` field from the COFF File Header of this input assembly file when the .NET Native binary was built. + +## Return Value + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) +- [COFF File Header (Object and Image)](/windows/win32/debug/pe-format#coff-file-header-object-and-image) +- [Compile apps with .NET Native](/windows/uwp/dotnet-native/) diff --git a/docs/debugger/debug-interface-access/idiainputassemblyfile-get-uniqueid.md b/docs/debugger/debug-interface-access/idiainputassemblyfile-get-uniqueid.md new file mode 100644 index 00000000000..c3ea02486a7 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiainputassemblyfile-get-uniqueid.md @@ -0,0 +1,47 @@ +--- +description: "Retrieves a unique identifier for the file." +title: "IDiaInputAssemblyFile::get_uniqueId" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaInputAssemblyFile::get_uniqueId method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaInputAssemblyFile::get_uniqueId + +Retrieves a unique identifier for the file. + +## Syntax + +```C++ +HRESULT get_uniqueId( + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the unique identifer for this file. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Remarks + +The identifiers are only unique within this data store. They are not guaranteed to be unique across different PDBs. + +## See also + +- [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) +- [Compile apps with .NET Native](/windows/uwp/dotnet-native/) diff --git a/docs/debugger/debug-interface-access/idiainputassemblyfile-get-version.md b/docs/debugger/debug-interface-access/idiainputassemblyfile-get-version.md new file mode 100644 index 00000000000..50ecc470dd3 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiainputassemblyfile-get-version.md @@ -0,0 +1,53 @@ +--- +description: "Retrieves the version of the orginal assembly." +title: "IDiaInputAssemblyFile::get_version" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaInputAssemblyFile::get_version method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaInputAssemblyFile::get_version + +Retrieves the version of the orginal assembly. + +## Syntax + +```C++ +HRESULT get_version( + DWORD cbData, + DWORD *pcbData, + BYTE *pbData +); +``` + +#### Parameters + + `cbData` + +[in] Size of the data buffer, in bytes. + + `pcbData` + +[out] Returns the number of bytes of the version data. This parameter cannot be `NULL`. + + `pbData` + +[out] A buffer that is filled with the version bytes. If this parameter is `NULL`, then `pcbData` returns the number of bytes required. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) +- [Compile apps with .NET Native](/windows/uwp/dotnet-native/) diff --git a/docs/debugger/debug-interface-access/idiainputassemblyfile.md b/docs/debugger/debug-interface-access/idiainputassemblyfile.md new file mode 100644 index 00000000000..76034644d54 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiainputassemblyfile.md @@ -0,0 +1,53 @@ +--- +description: Accesses information that describes an input or source assembly file for a .Net Native binary. +title: IDiaInputAssemblyFile +ms.date: "07/17/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaInputAssemblyFile interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- + +# IDiaInputAssemblyFile + +Accesses information that describes an input or source assembly file for a .Net Native binary. + +## Syntax + +`IDiaInputAssemblyFile : IUnknown` + +## Methods + +The following table shows the methods of `IDiaInputAssemblyFile`. + +|Method|Description| +|------------|-----------------| +|[`IDiaInputAssemblyFile::get_uniqueId`](../../debugger/debug-interface-access/idiainputassemblyfile-get-uniqueid.md)|Retrieves a unique identifier for the file.| +|[`IDiaInputAssemblyFile::get_index`](../../debugger/debug-interface-access/idiainputassemblyfile-get-index.md)|Retrieves the file index.| +|[`IDiaInputAssemblyFile::get_timestamp`](../../debugger/debug-interface-access/idiainputassemblyfile-get-timestamp.md)|Retrieves the time stamp.| +|[`IDiaInputAssemblyFile::get_pdbAvailableAtILMerge`](../../debugger/debug-interface-access/idiainputassemblyfile-get-pdbavailableatilmerge.md)|Retrieves a flag that indicates whether the PDB was available at the creation of the .Net Native binary.| +|[`IDiaInputAssemblyFile::get_fileName`](../../debugger/debug-interface-access/idiainputassemblyfile-get-filename.md)|Retrieves the orginal assembly file name.| +|[`IDiaInputAssemblyFile::get_version`](../../debugger/debug-interface-access/idiainputassemblyfile-get-version.md)|Retrieves the version of the orginal assembly.| + +## Remarks + +Obtain this interface by calling one of the [`IDiaSession::findInputAssemblyFile`](../../debugger/debug-interface-access/idiasession-findinputassemblyfile.md), [`IDiaSession::findInputAssembly`](../../debugger/debug-interface-access/idiasession-findinputassembly.md), [`IDiaSession::findInputAssemblyById`](../../debugger/debug-interface-access/idiasession-findinputassemblybyid.md), or [`IDiaSymbol::findInputAssemblyFile`](../../debugger/debug-interface-access/idiasymbol-findinputassemblyfile.md) methods. You can also enumerate the .Net Native input assembly files with the [`IDiaEnumInputAssemblyFiles`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles.md) interface. + +## Requirements + +Header: Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [`IDiaEnumInputAssemblyFiles`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles.md) +- [Compile apps with .NET Native](/windows/uwp/dotnet-native/) diff --git a/docs/debugger/debug-interface-access/idiasectioncontrib.md b/docs/debugger/debug-interface-access/idiasectioncontrib.md index e0c9cfcb75d..9db6adb786b 100644 --- a/docs/debugger/debug-interface-access/idiasectioncontrib.md +++ b/docs/debugger/debug-interface-access/idiasectioncontrib.md @@ -1,7 +1,7 @@ --- description: "Retrieves data describing a section contribution, that is, a contiguous block of memory contributed to the image by a compiland." title: "IDiaSectionContrib" -ms.date: "11/04/2016" +ms.date: "07/18/2024" ms.topic: "reference" dev_langs: - "C++" @@ -23,42 +23,45 @@ IDiaSectionContrib : IUnknown ``` ## Methods in Vtable Order + The following table shows the methods of `IDiaSectionContrib`. |Method|Description| |------------|-----------------| -|[IDiaSectionContrib::get_compiland](../../debugger/debug-interface-access/idiasectioncontrib-get-compiland.md)|Retrieves a reference to the compiland symbol that contributed this section.| -|[IDiaSectionContrib::get_addressSection](../../debugger/debug-interface-access/idiasectioncontrib-get-addresssection.md)|Retrieves the section part of the contribution's address.| -|[IDiaSectionContrib::get_addressOffset](../../debugger/debug-interface-access/idiasectioncontrib-get-addressoffset.md)|Retrieves the offset part of the contribution's address.| -|[IDiaSectionContrib::get_relativeVirtualAddress](../../debugger/debug-interface-access/idiasectioncontrib-get-relativevirtualaddress.md)|Retrieves the image relative virtual address (RVA) of the contribution.| -|[IDiaSectionContrib::get_virtualAddress](../../debugger/debug-interface-access/idiasectioncontrib-get-virtualaddress.md)|Retrieves the virtual address (VA) of the contribution.| -|[IDiaSectionContrib::get_length](../../debugger/debug-interface-access/idiasectioncontrib-get-length.md)|Retrieves the number of bytes in a section.| -|[IDiaSectionContrib::get_notPaged](../../debugger/debug-interface-access/idiasectioncontrib-get-notpaged.md)|Retrieves a flag that indicates whether the section cannot be paged out of memory.| -|[IDiaSectionContrib::get_nopad](../../debugger/debug-interface-access/idiasectioncontrib-get-nopad.md)|Retrieves a flag indicating whether the section should not be padded to the next memory boundary.| -|[IDiaSectionContrib::get_code](../../debugger/debug-interface-access/idiasectioncontrib-get-code.md)|Retrieves a flag that indicates whether the section contains executable code.| -|[IDiaSectionContrib::get_code16bit](../../debugger/debug-interface-access/idiasectioncontrib-get-code16bit.md)|Retrieves a flag that indicates whether the section contains 16-bit code.| -|[IDiaSectionContrib::get_initializedData](../../debugger/debug-interface-access/idiasectioncontrib-get-initializeddata.md)|Retrieves a flag that indicates whether the section contains initialized data.| -|[IDiaSectionContrib::get_uninitializedData](../../debugger/debug-interface-access/idiasectioncontrib-get-uninitializeddata.md)|Retrieves a flag that indicates whether the section contains uninitialized data.| -|[IDiaSectionContrib::get_informational](../../debugger/debug-interface-access/idiasectioncontrib-get-informational.md)|Retrieves a flag indicating whether a section contains comments or similar information.| -|[IDiaSectionContrib::get_remove](../../debugger/debug-interface-access/idiasectioncontrib-get-remove.md)|Retrieves a flag that indicates whether the section is removed before it is made part of the in-memory image.| -|[IDiaSectionContrib::get_comdat](../../debugger/debug-interface-access/idiasectioncontrib-get-comdat.md)|Retrieves a flag that indicates whether the section is a COMDAT record.| -|[IDiaSectionContrib::get_discardable](../../debugger/debug-interface-access/idiasectioncontrib-get-discardable.md)|Retrieves a flag that indicates whether the section can be discarded.| -|[IDiaSectionContrib::get_notCached](../../debugger/debug-interface-access/idiasectioncontrib-get-notcached.md)|Retrieves a flag that indicates whether the section cannot be cached.| -|[IDiaSectionContrib::get_share](../../debugger/debug-interface-access/idiasectioncontrib-get-share.md)|Retrieves a flag that indicates whether the section can be shared in memory.| -|[IDiaSectionContrib::get_execute](../../debugger/debug-interface-access/idiasectioncontrib-get-execute.md)|Retrieves a flag that indicates whether the section is executable as code.| -|[IDiaSectionContrib::get_read](../../debugger/debug-interface-access/idiasectioncontrib-get-read.md)|Retrieves a flag that indicates whether the section can be read.| -|[IDiaSectionContrib::get_write](../../debugger/debug-interface-access/idiasectioncontrib-get-write.md)|Retrieves a flag that indicates whether the section can be written.| -|[IDiaSectionContrib::get_dataCrc](../../debugger/debug-interface-access/idiasectioncontrib-get-datacrc.md)|Retrieves the cyclic redundancy check (CRC) of the data in the section.| -|[IDiaSectionContrib::get_relocationsCrc](../../debugger/debug-interface-access/idiasectioncontrib-get-relocationscrc.md)|Retrieves the CRC of the relocation information for the section.| -|[IDiaLineNumber::get_compilandId](../../debugger/debug-interface-access/idialinenumber-get-compilandid.md)|Retrieves the compiland identifier for the section.| +|[`IDiaSectionContrib::get_compiland`](../../debugger/debug-interface-access/idiasectioncontrib-get-compiland.md)|Retrieves a reference to the compiland symbol that contributed this section.| +|[`IDiaSectionContrib::get_addressSection`](../../debugger/debug-interface-access/idiasectioncontrib-get-addresssection.md)|Retrieves the section part of the contribution's address.| +|[`IDiaSectionContrib::get_addressOffset`](../../debugger/debug-interface-access/idiasectioncontrib-get-addressoffset.md)|Retrieves the offset part of the contribution's address.| +|[`IDiaSectionContrib::get_relativeVirtualAddress`](../../debugger/debug-interface-access/idiasectioncontrib-get-relativevirtualaddress.md)|Retrieves the image relative virtual address (RVA) of the contribution.| +|[`IDiaSectionContrib::get_virtualAddress`](../../debugger/debug-interface-access/idiasectioncontrib-get-virtualaddress.md)|Retrieves the virtual address (VA) of the contribution.| +|[`IDiaSectionContrib::get_length`](../../debugger/debug-interface-access/idiasectioncontrib-get-length.md)|Retrieves the number of bytes in a section.| +|[`IDiaSectionContrib::get_notPaged`](../../debugger/debug-interface-access/idiasectioncontrib-get-notpaged.md)|Retrieves a flag that indicates whether the section cannot be paged out of memory.| +|[`IDiaSectionContrib::get_nopad`](../../debugger/debug-interface-access/idiasectioncontrib-get-nopad.md)|Retrieves a flag indicating whether the section should not be padded to the next memory boundary.| +|[`IDiaSectionContrib::get_code`](../../debugger/debug-interface-access/idiasectioncontrib-get-code.md)|Retrieves a flag that indicates whether the section contains executable code.| +|[`IDiaSectionContrib::get_initializedData`](../../debugger/debug-interface-access/idiasectioncontrib-get-initializeddata.md)|Retrieves a flag that indicates whether the section contains initialized data.| +|[`IDiaSectionContrib::get_uninitializedData`](../../debugger/debug-interface-access/idiasectioncontrib-get-uninitializeddata.md)|Retrieves a flag that indicates whether the section contains uninitialized data.| +|[`IDiaSectionContrib::get_informational`](../../debugger/debug-interface-access/idiasectioncontrib-get-informational.md)|Retrieves a flag indicating whether a section contains comments or similar information.| +|[`IDiaSectionContrib::get_remove`](../../debugger/debug-interface-access/idiasectioncontrib-get-remove.md)|Retrieves a flag that indicates whether the section is removed before it is made part of the in-memory image.| +|[`IDiaSectionContrib::get_comdat`](../../debugger/debug-interface-access/idiasectioncontrib-get-comdat.md)|Retrieves a flag that indicates whether the section is a COMDAT record.| +|[`IDiaSectionContrib::get_discardable`](../../debugger/debug-interface-access/idiasectioncontrib-get-discardable.md)|Retrieves a flag that indicates whether the section can be discarded.| +|[`IDiaSectionContrib::get_notCached`](../../debugger/debug-interface-access/idiasectioncontrib-get-notcached.md)|Retrieves a flag that indicates whether the section cannot be cached.| +|[`IDiaSectionContrib::get_share`](../../debugger/debug-interface-access/idiasectioncontrib-get-share.md)|Retrieves a flag that indicates whether the section can be shared in memory.| +|[`IDiaSectionContrib::get_execute`](../../debugger/debug-interface-access/idiasectioncontrib-get-execute.md)|Retrieves a flag that indicates whether the section is executable as code.| +|[`IDiaSectionContrib::get_read`](../../debugger/debug-interface-access/idiasectioncontrib-get-read.md)|Retrieves a flag that indicates whether the section can be read.| +|[`IDiaSectionContrib::get_write`](../../debugger/debug-interface-access/idiasectioncontrib-get-write.md)|Retrieves a flag that indicates whether the section can be written.| +|[`IDiaSectionContrib::get_dataCrc`](../../debugger/debug-interface-access/idiasectioncontrib-get-datacrc.md)|Retrieves the cyclic redundancy check (CRC) of the data in the section.| +|[`IDiaSectionContrib::get_relocationsCrc`](../../debugger/debug-interface-access/idiasectioncontrib-get-relocationscrc.md)|Retrieves the CRC of the relocation information for the section.| +|[`IDiaSectionContrib::get_compilandId`](../../debugger/debug-interface-access/idiasectioncontrib-get-compilandid.md)|Retrieves the compiland identifier for the section.| +|[`IDiaSectionContrib::get_code16bit`](../../debugger/debug-interface-access/idiasectioncontrib-get-code16bit.md)|Retrieves a flag that indicates whether the section contains 16-bit code.| ## Remarks ## Notes for Callers -This interface is obtained by calling the [IDiaEnumSectionContribs::Item](../../debugger/debug-interface-access/idiaenumsectioncontribs-item.md) and [IDiaEnumSectionContribs::Next](../../debugger/debug-interface-access/idiaenumsectioncontribs-next.md) methods. See the [IDiaEnumSectionContribs](../../debugger/debug-interface-access/idiaenumsectioncontribs.md) interface for an example of obtaining the `IDiaSectionContrib` interface. + +This interface is obtained by calling the [`IDiaEnumSectionContribs::Item`](../../debugger/debug-interface-access/idiaenumsectioncontribs-item.md) and [`IDiaEnumSectionContribs::Next`](../../debugger/debug-interface-access/idiaenumsectioncontribs-next.md) methods. See the [`IDiaEnumSectionContribs`](../../debugger/debug-interface-access/idiaenumsectioncontribs.md) interface for an example of obtaining the `IDiaSectionContrib` interface. ## Example -This function shows the address of each section along with any associated symbols. See the [IDiaEnumSectionContribs](../../debugger/debug-interface-access/idiaenumsectioncontribs.md) interface to see how the `IDiaSectionContrib` interface is obtained. + +This function shows the address of each section along with any associated symbols. See the [`IDiaEnumSectionContribs`](../../debugger/debug-interface-access/idiaenumsectioncontribs.md) interface to see how the `IDiaSectionContrib` interface is obtained. ```C++ void PrintSectionContrib(IDiaSectionContrib* pSecContrib, IDiaSession* pSession) @@ -121,14 +124,16 @@ void PrintSectionContrib(IDiaSectionContrib* pSecContrib, IDiaSession* pSession) ``` ## Requirements + Header: Dia2.h Library: diaguids.lib -DLL: msdia80.dll +DLL: msdia140.dll ## See also + - [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) -- [IDiaEnumSectionContribs](../../debugger/debug-interface-access/idiaenumsectioncontribs.md) -- [IDiaEnumSectionContribs::Item](../../debugger/debug-interface-access/idiaenumsectioncontribs-item.md) -- [IDiaEnumSectionContribs::Next](../../debugger/debug-interface-access/idiaenumsectioncontribs-next.md) +- [`IDiaEnumSectionContribs`](../../debugger/debug-interface-access/idiaenumsectioncontribs.md) +- [`IDiaEnumSectionContribs::Item`](../../debugger/debug-interface-access/idiaenumsectioncontribs-item.md) +- [`IDiaEnumSectionContribs::Next`](../../debugger/debug-interface-access/idiaenumsectioncontribs-next.md) diff --git a/docs/debugger/debug-interface-access/idiasession-addressForVA.md b/docs/debugger/debug-interface-access/idiasession-addressForVA.md new file mode 100644 index 00000000000..2caa50568c9 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-addressForVA.md @@ -0,0 +1,56 @@ +--- +description: "Returns the equivalent address for the specified virtual address (VA)." +title: "IDiaSession::addressForVA" +ms.date: "07/03/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::addressForVA method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::addressForVA + +Returns the equivalent address for the specified virtual address (VA). + +## Syntax + +```C++ +HRESULT addressForVA( + ULONGLONG va, + DWORD* pISect, + DWORD* pOffset); +``` + +#### Parameters + + `va` + +[in] The virtual address to translate. + + `pISect` + +[out] Returns the equivalent section for the specified address. + + `pOffset` + +[out] Returns the equivalent offset within the section for the specified address. + + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## Example + +```C++ +DWORD sect = 0, offset = 0; +pSession->addressForVA( va, §, &offset ); +``` + +## See also + +- [IDiaSession](../../debugger/debug-interface-access/idiasession.md) diff --git a/docs/debugger/debug-interface-access/idiasession-addressforrva.md b/docs/debugger/debug-interface-access/idiasession-addressforrva.md new file mode 100644 index 00000000000..43c60b57feb --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-addressforrva.md @@ -0,0 +1,56 @@ +--- +description: "Returns the equivalent address for the specified relative virtual address (RVA)." +title: "IDiaSession::addressForRVA" +ms.date: "07/03/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::addressForRVA method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::addressForRVA + +Returns the equivalent address for the specified virtual address (VA). + +## Syntax + +```C++ +HRESULT addressForRVA( + DWORD rva, + DWORD* pISect, + DWORD* pOffset); +``` + +#### Parameters + + `rva` + +[in] The relative virtual address to translate. + + `pISect` + +[out] Returns the equivalent section for the specified address. + + `pOffset` + +[out] Returns the equivalent offset within the section for the specified address. + + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## Example + +```C++ +DWORD sect = 0, offset = 0; +pSession->addressForRVA( rva, §, &offset ); +``` + +## See also + +- [IDiaSession](../../debugger/debug-interface-access/idiasession.md) diff --git a/docs/debugger/debug-interface-access/idiasession-findchildrenex.md b/docs/debugger/debug-interface-access/idiasession-findchildrenex.md new file mode 100644 index 00000000000..02b5cbd4ae2 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-findchildrenex.md @@ -0,0 +1,73 @@ +--- +description: "Retrieves all children of a specified parent identifier that match the name and symbol type, including optimized locals." +title: "IDiaSession::findChildrenEx" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::findChildrenEx method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- +# IDiaSession::findChildrenEx + +Retrieves all children of a specified parent identifier that match the name and symbol type, including optimized locals. + +## Syntax + +```C++ +HRESULT findChildrenEx ( + IDiaSymbol* parent, + SymTagEnum symtag, + LPCOLESTR name, + DWORD compareFlags, + IDiaEnumSymbols** ppResult +); +``` + +#### Parameters + + `parent` + +[in] An [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) object representing the parent. If this parent symbol is a function, module, or block, then its lexical children are returned in `ppResult`. If the parent symbol is a type, then its class children are returned. If this parameter is `NULL`, then `symtag` must be set to `SymTagExe` or `SymTagNull`, which returns the global scope (.exe file). + + `symtag` + +[in] Specifies the symbol tag of the children to be retrieved. Values are taken from the [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md) enumeration. Set to `SymTagNull` to retrieve all children. + + `name` + +[in] Specifies the name of the children to be retrieved. Set to `NULL` for all children to be retrieved. + + `compareFlags` + +[in] Specifies the comparison options applied to name matching. Values from the [`NameSearchOptions` Enumeration](../../debugger/debug-interface-access/namesearchoptions.md) enumeration can be used alone or in combination. + + `ppResult` + +[out] Returns an [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) object that contains the list of child symbols retrieved. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## Example + + The following example shows how to find local variables of function `pFunc` that match name `szVarName`. + +```C++ +IDiaEnumSymbols* pEnum; +pSession->findChildrenEx( pFunc, SymTagData, szVarName, nsCaseSensitive, &pEnum ); +``` + +## See also + +- [Overview](../../debugger/debug-interface-access/overview-debug-interface-access-sdk.md) +- [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`NameSearchOptions` Enumeration](../../debugger/debug-interface-access/namesearchoptions.md) +- [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md) diff --git a/docs/debugger/debug-interface-access/idiasession-findchildrenexbyaddr.md b/docs/debugger/debug-interface-access/idiasession-findchildrenexbyaddr.md new file mode 100644 index 00000000000..8b1cf60c035 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-findchildrenexbyaddr.md @@ -0,0 +1,83 @@ +--- +description: "Retrieves all children of a specified parent identifier that match the name and symbol type, including optimized locals, that contains, or is closest to, a specified address." +title: "IDiaSession::findChildrenExByAddr" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::findChildrenExByAddr method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- +# IDiaSession::findChildrenExByAddr + +Retrieves all children of a specified parent identifier that match the name and symbol type, including optimized locals, that contains, or is closest to, a specified address. + +## Syntax + +```C++ +HRESULT findChildrenExByAddr ( + IDiaSymbol* parent, + SymTagEnum symtag, + LPCOLESTR name, + DWORD compareFlags, + DWORD isect, + DWORD offset, + IDiaEnumSymbols** ppResult +); +``` + +#### Parameters + + `parent` + +[in] An [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) object representing the parent. If this parent symbol is a function, module, or block, then its lexical children are returned in `ppResult`. If the parent symbol is a type, then its class children are returned. If this parameter is `NULL`, then `symtag` must be set to `SymTagExe` or `SymTagNull`, which returns the global scope (.exe file). + + `symtag` + +[in] Specifies the symbol tag of the children to be retrieved. Values are taken from the [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md) enumeration. Set to `SymTagNull` to retrieve all children. + + `name` + +[in] Specifies the name of the children to be retrieved. Set to `NULL` for all children to be retrieved. + + `compareFlags` + +[in] Specifies the comparison options applied to name matching. Values from the [`NameSearchOptions` Enumeration](../../debugger/debug-interface-access/namesearchoptions.md) enumeration can be used alone or in combination. + + `isect` + +[in] Specifies the section component of the address. + + `offset` + +[in] Specifies the offset component of the address. + + `ppResult` + +[out] Returns an [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) object that contains the list of child symbols retrieved. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## Example + + The following example shows how to find local variables of function `pFunc` that match name `szVarName` and are at address `isect:offset`. + +```C++ +IDiaEnumSymbols* pEnum; +pSession->findChildrenExByAddr( pFunc, SymTagData, szVarName, nsCaseSensitive, isect, offset, &pEnum ); +``` + +## See also + +- [Overview](../../debugger/debug-interface-access/overview-debug-interface-access-sdk.md) +- [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) +- [`NameSearchOptions` Enumeration](../../debugger/debug-interface-access/namesearchoptions.md) +- [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md) diff --git a/docs/debugger/debug-interface-access/idiasession-findchildrenexbyrva.md b/docs/debugger/debug-interface-access/idiasession-findchildrenexbyrva.md new file mode 100644 index 00000000000..a5b1df02701 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-findchildrenexbyrva.md @@ -0,0 +1,78 @@ +--- +description: "Retrieves all children of a specified parent identifier that match the name and symbol type, including optimized locals, that contains, or is closest to, a specified relative virtual address (RVA)." +title: "IDiaSession::findChildrenExByRVA" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::findChildrenExByRVA method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- +# IDiaSession::findChildrenExByRVA + +Retrieves all children of a specified parent identifier that match the name and symbol type, including optimized locals, that contains, or is closest to, a specified relative virtual address (RVA). + +## Syntax + +```C++ +HRESULT findChildrenExByRVA ( + IDiaSymbol* parent, + SymTagEnum symtag, + LPCOLESTR name, + DWORD compareFlags, + DWORD rva, + IDiaEnumSymbols** ppResult +); +``` + +#### Parameters + + `parent` + +[in] An [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) object representing the parent. If this parent symbol is a function, module, or block, then its lexical children are returned in `ppResult`. If the parent symbol is a type, then its class children are returned. If this parameter is `NULL`, then `symtag` must be set to `SymTagExe` or `SymTagNull`, which returns the global scope (.exe file). + + `symtag` + +[in] Specifies the symbol tag of the children to be retrieved. Values are taken from the [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md) enumeration. Set to `SymTagNull` to retrieve all children. + + `name` + +[in] Specifies the name of the children to be retrieved. Set to `NULL` for all children to be retrieved. + + `compareFlags` + +[in] Specifies the comparison options applied to name matching. Values from the [`NameSearchOptions` Enumeration](../../debugger/debug-interface-access/namesearchoptions.md) enumeration can be used alone or in combination. + + `rva` + +[in] Specifies the RVA. + + `ppResult` + +[out] Returns an [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) object that contains the list of child symbols retrieved. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## Example + + The following example shows how to find local variables of function `pFunc` that match name `szVarName` at relative virtual address `rva`. + +```C++ +IDiaEnumSymbols* pEnum; +pSession->findChildrenExByRVA( pFunc, SymTagData, szVarName, nsCaseSensitive, rva, &pEnum ); +``` + +## See also + +- [Overview](../../debugger/debug-interface-access/overview-debug-interface-access-sdk.md) +- [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`NameSearchOptions` Enumeration](../../debugger/debug-interface-access/namesearchoptions.md) +- [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md) diff --git a/docs/debugger/debug-interface-access/idiasession-findchildrenexbyva.md b/docs/debugger/debug-interface-access/idiasession-findchildrenexbyva.md new file mode 100644 index 00000000000..4191f7f3b3a --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-findchildrenexbyva.md @@ -0,0 +1,77 @@ +--- +description: "Retrieves all children of a specified parent identifier that match the name and symbol type, including optimized locals, that contains, or is closest to, a specified virtual address (VA)." +title: "IDiaSession::findChildrenExByVA" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::findChildrenExByVA method" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- +# IDiaSession::findChildrenExByVA + +Retrieves all children of a specified parent identifier that match the name and symbol type, including optimized locals, that contains, or is closest to, a specified virtual address (VA). + +## Syntax + +```C++ +HRESULT findChildrenExByVA ( + IDiaSymbol* parent, + SymTagEnum symtag, + LPCOLESTR name, + DWORD compareFlags, + ULONGLONG va, + IDiaEnumSymbols** ppResult +); +``` + +#### Parameters + + `parent` + +[in] An [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) object representing the parent. If this parent symbol is a function, module, or block, then its lexical children are returned in `ppResult`. If the parent symbol is a type, then its class children are returned. If this parameter is `NULL`, then `symtag` must be set to `SymTagExe` or `SymTagNull`, which returns the global scope (.exe file). + + `symtag` + +[in] Specifies the symbol tag of the children to be retrieved. Values are taken from the [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md) enumeration. Set to `SymTagNull` to retrieve all children. + + `name` + +[in] Specifies the name of the children to be retrieved. Set to `NULL` for all children to be retrieved. + + `compareFlags` + +[in] Specifies the comparison options applied to name matching. Values from the [`NameSearchOptions` Enumeration](../../debugger/debug-interface-access/namesearchoptions.md) enumeration can be used alone or in combination. + + `va` + +[in] Specifies the virtual address. + + `ppResult` + +[out] Returns an [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) object that contains the list of child symbols retrieved. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## Example + The following example shows how to find local variables of function `pFunc` that match name `szVarName` at virtual address `va`. + +```C++ +IDiaEnumSymbols* pEnum; +pSession->findChildrenExByVA( pFunc, SymTagData, szVarName, nsCaseSensitive, va, &pEnum ); +``` + +## See also + +- [Overview](../../debugger/debug-interface-access/overview-debug-interface-access-sdk.md) +- [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`NameSearchOptions` Enumeration](../../debugger/debug-interface-access/namesearchoptions.md) +- [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md) diff --git a/docs/debugger/debug-interface-access/idiasession-findiloffsetsbyaddr.md b/docs/debugger/debug-interface-access/idiasession-findiloffsetsbyaddr.md new file mode 100644 index 00000000000..741ef5e8b81 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-findiloffsetsbyaddr.md @@ -0,0 +1,78 @@ +--- +description: "Retrieves an enumeration that allows a client to iterate through the MSIL offsets within a specified address range." +title: "IDiaSession::findILOffsetsByAddr" +ms.date: "07/22/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::findILOffsetsByAddr method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::findILOffsetsByAddr + +Retrieves an enumeration that allows a client to iterate through the MSIL offsets within a specified address range. + +## Syntax + +```C++ +HRESULT findILOffsetsByAddr ( + DWORD isect, + DWORD offset, + DWORD length, + IDiaEnumLineNumbers** ppResult +); +``` + +#### Parameters +`isect` + +[in] Specifies the section component of the specific address. + +`offset` + +[in] Specifies the offset component of the specific address. + +`length` + +[in] Specifies the number of bytes of address range to cover with this query. + +`ppResult` + +[out] Returns an [`IDiaEnumLineNumbers`](../../debugger/debug-interface-access/idiaenumlinenumbers.md) object that contains a list of all the MSIL offsets that cover the specified address range. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. + +## Example + +This example shows a function that obtains all MSIL offset contained in a function using the function's address and length. + +```C++ +IDiaEnumLineNumbers* GetLineNumbersByAddr(IDiaSymbol *pFunc, + IDiaSession *pSession) +{ + IDiaEnumLineNumbers* pEnum = NULL; + DWORD seg; + DWORD offset; + ULONGLONG length; + + if (pFunc->get_addressSection ( &seg ) == S_OK && + pFunc->get_addressOffset ( &offset ) == S_OK) + { + pFunc->get_length ( &length ); + pSession->findILOffsetsByAddr( seg, offset, static_cast( length ), &pEnum ); + } + return(pEnum); +} +``` + +## See also + +- [`IDiaEnumLineNumbers`](../../debugger/debug-interface-access/idiaenumlinenumbers.md) +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaSession::findILOffsetsByVA`](../../debugger/debug-interface-access/idiasession-findlinesbyva.md) diff --git a/docs/debugger/debug-interface-access/idiasession-findiloffsetsbyrva.md b/docs/debugger/debug-interface-access/idiasession-findiloffsetsbyrva.md new file mode 100644 index 00000000000..1c8d243ea03 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-findiloffsetsbyrva.md @@ -0,0 +1,72 @@ +--- +description: "Retrieves an enumeration that allows a client to iterate through the MSIL offsets within a specified relative virtual address (RVA) range." +title: "IDiaSession::findILOffsetsByRVA" +ms.date: "07/22/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::findILOffsetsByRVA method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::findILOffsetsByRVA + +Retrieves an enumeration that allows a client to iterate through the MSIL offsets within a specified address range. + +## Syntax + +```C++ +HRESULT findILOffsetsByRVA ( + DWORD rva, + DWORD length, + IDiaEnumLineNumbers** ppResult +); +``` + +#### Parameters + +`rva` + +[in] Specifies the address as an RVA. + +`length` + +[in] Specifies the number of bytes of address range to cover with this query. + +`ppResult` + +[out] Returns an [`IDiaEnumLineNumbers`](../../debugger/debug-interface-access/idiaenumlinenumbers.md) object that contains a list of all the MSIL offsets that cover the specified address range. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. + +## Example + +This example shows a function that obtains all MSIL offset contained in a function using the function's address and length. + +```C++ +IDiaEnumLineNumbers* GetLineNumbersByAddr(IDiaSymbol *pFunc, + IDiaSession *pSession) +{ + IDiaEnumLineNumbers* pEnum = NULL; + DWORD rva = 0; + ULONGLONG length; + + if (pFunc->get_relativeVirtualAddress ( &rva ) == S_OK) + { + pFunc->get_length ( &length ); + pSession->findILOffsetsByRVA( rva, static_cast( length ), &pEnum ); + } + return(pEnum); +} +``` + +## See also + +- [`IDiaEnumLineNumbers`](../../debugger/debug-interface-access/idiaenumlinenumbers.md) +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaSession::findILOffsetsByRVA`](../../debugger/debug-interface-access/idiasession-findlinesbyrva.md) \ No newline at end of file diff --git a/docs/debugger/debug-interface-access/idiasession-findiloffsetsbyva.md b/docs/debugger/debug-interface-access/idiasession-findiloffsetsbyva.md new file mode 100644 index 00000000000..83116ca83d6 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-findiloffsetsbyva.md @@ -0,0 +1,72 @@ +--- +description: "Retrieves an enumeration that allows a client to iterate through the MSIL offsets within a specified virtual address (VA) range." +title: "IDiaSession::findILOffsetsByVA" +ms.date: "07/22/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::findILOffsetsByVA method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::findILOffsetsByVA + +Retrieves an enumeration that allows a client to iterate through the MSIL offsets within a specified address range. + +## Syntax + +```C++ +HRESULT findILOffsetsByVA ( + ULONGLONG va, + DWORD length, + IDiaEnumLineNumbers** ppResult +); +``` + +#### Parameters + +`va` + +[in] Specifies the address as a VA. + +`length` + +[in] Specifies the number of bytes of address range to cover with this query. + +`ppResult` + +[out] Returns an [`IDiaEnumLineNumbers`](../../debugger/debug-interface-access/idiaenumlinenumbers.md) object that contains a list of all the MSIL offsets that cover the specified address range. + +## Return Value + +If successful, returns `S_OK`; otherwise, returns an error code. + +## Example + +This example shows a function that obtains all MSIL offset contained in a function using the function's address and length. + +```C++ +IDiaEnumLineNumbers* GetLineNumbersByAddr(IDiaSymbol *pFunc, + IDiaSession *pSession) +{ + IDiaEnumLineNumbers* pEnum = NULL; + ULONGLONG va = 0; + ULONGLONG length = 0; + + if (pFunc->get_virtualAddress ( &rva ) == S_OK) + { + pFunc->get_length ( &length ); + pSession->findILOffsetsByVA( va, static_cast( length ), &pEnum ); + } + return(pEnum); +} +``` + +## See also + +- [`IDiaEnumLineNumbers`](../../debugger/debug-interface-access/idiaenumlinenumbers.md) +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaSession::findILOffsetsByRVA`](../../debugger/debug-interface-access/idiasession-findlinesbyrva.md) diff --git a/docs/debugger/debug-interface-access/idiasession-findinputassembly.md b/docs/debugger/debug-interface-access/idiasession-findinputassembly.md new file mode 100644 index 00000000000..96bd71ab752 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-findinputassembly.md @@ -0,0 +1,46 @@ +--- +description: "Retrieves a .NET Native input assembly file by index." +title: "IDiaSession::findInputAssembly" +ms.date: "07/04/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::findInputAssembly method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::findInputAssembly + +Retrieves a .NET Native input assembly file by index. + +## Syntax + +```C++ +HRESULT findInputAssembly ( + DWORD index, + IDiaInputAssemblyFile** ppResult +); +``` + +#### Parameters + + `index` + +[in] Specifies the index of the .NET Native input assembly file to return. + + `ppResult` + +[out] Returns the specified [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) object. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) +- [`IDiaInputAssemblyFile::get_index`](../../debugger/debug-interface-access/idiainputassemblyfile-get-index.md) diff --git a/docs/debugger/debug-interface-access/idiasession-findinputassemblybyid.md b/docs/debugger/debug-interface-access/idiasession-findinputassemblybyid.md new file mode 100644 index 00000000000..925d9e9849a --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-findinputassemblybyid.md @@ -0,0 +1,46 @@ +--- +description: "Retrieves a .NET Native input assembly file by unique identifier." +title: "IDiaSession::findInputAssemblyById" +ms.date: "07/04/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::findInputAssemblyById method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::findInputAssemblyById + +Retrieves a .NET Native input assembly file by unique identifier. + +## Syntax + +```C++ +HRESULT findInputAssemblyById ( + DWORD uniqueId, + IDiaInputAssemblyFile** ppResult +); +``` + +#### Parameters + + `uniqueId` + +[in] Specifies the unique identifier of the .NET Native input assembly file to return. + + `ppResult` + +[out] Returns the specified [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) object. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) +- [`IDiaInputAssemblyFile::get_uniqueId`](../../debugger/debug-interface-access/idiainputassemblyfile-get-uniqueid.md) diff --git a/docs/debugger/debug-interface-access/idiasession-findinputassemblyfile.md b/docs/debugger/debug-interface-access/idiasession-findinputassemblyfile.md new file mode 100644 index 00000000000..aac12a0c828 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-findinputassemblyfile.md @@ -0,0 +1,47 @@ +--- +description: "Retrieves the .NET Native input assembly file that is the parent of the specified symbol." +title: "IDiaSession::findInputAssemblyFile" +ms.date: "07/05/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::findInputAssemblyFile method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::findInputAssemblyFile + +Retrieves the .NET Native input assembly file that is the parent of the specified symbol. + +## Syntax + +```C++ +HRESULT findInputAssemblyFile (  + IDiaSymbol* pSymbol, + IDiaInputAssemblyFile** ppResult +); +``` + +#### Parameters + + `pSymbol` + +[in] An [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) that is a child of the desired input assembly. + + `ppResult` + +[out] Returns an [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) object that was the original .NET assembly of the specified symbol. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol::findInputAssemblyFile`](../../debugger/debug-interface-access/idiasymbol-findinputassemblyfile.md) +- [`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) diff --git a/docs/debugger/debug-interface-access/idiasession-findinputassemblyfiles.md b/docs/debugger/debug-interface-access/idiasession-findinputassemblyfiles.md new file mode 100644 index 00000000000..0df44560236 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-findinputassemblyfiles.md @@ -0,0 +1,40 @@ +--- +description: "Retrieves an enumeration that allows a client to iterate through the .NET Native input assembly files." +title: "IDiaSession::findInputAssemblyFiles" +ms.date: "07/04/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::findInputAssemblyFiles method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::findInputAssemblyFiles + +Retrieves an enumeration that allows a client to iterate through the .NET Native input assembly files. + +## Syntax + +```C++ +HRESULT findInputAssemblyFiles ( + IDiaEnumInputAssemblyFiles** ppResult +); +``` + +#### Parameters + + `ppResult` + +[out] Returns an [`IDiaEnumInputAssemblyFiles`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles.md) object that contains a list of .NET Native input assembly files. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaEnumInputAssemblyFiles`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles.md) diff --git a/docs/debugger/debug-interface-access/idiasession-findlinesbyaddr.md b/docs/debugger/debug-interface-access/idiasession-findlinesbyaddr.md index 562aa32090f..af3c3dc8167 100644 --- a/docs/debugger/debug-interface-access/idiasession-findlinesbyaddr.md +++ b/docs/debugger/debug-interface-access/idiasession-findlinesbyaddr.md @@ -1,7 +1,7 @@ --- description: "Retrieves the lines in a specified compiland that contain a specified address." title: "IDiaSession::findLinesByAddr" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -12,7 +12,7 @@ ms.author: "mikejo" manager: mijacobs ms.subservice: debug-diagnostics --- -# IDiaSession::findLinesByAddr +# `IDiaSession::findLinesByAddr` Retrieves the lines in a specified compiland that contain a specified address. @@ -42,7 +42,7 @@ HRESULT findLinesByAddr ( `ppResult` -[out] Returns an [IDiaEnumLineNumbers](../../debugger/debug-interface-access/idiaenumlinenumbers.md) object that contains a list of all the line numbers that cover the specified address range. +[out] Returns an [`IDiaEnumLineNumbers`](../../debugger/debug-interface-access/idiaenumlinenumbers.md) object that contains a list of all the line numbers that cover the specified address range. ## Return Value If successful, returns `S_OK`; otherwise, returns an error code. @@ -70,6 +70,6 @@ IDiaEnumLineNumbers* GetLineNumbersByAddr(IDiaSymbol *pFunc, ``` ## See also -- [IDiaEnumLineNumbers](../../debugger/debug-interface-access/idiaenumlinenumbers.md) -- [IDiaSession](../../debugger/debug-interface-access/idiasession.md) -- [IDiaSession::findLinesByVA](../../debugger/debug-interface-access/idiasession-findlinesbyva.md) +- [`IDiaEnumLineNumbers`](../../debugger/debug-interface-access/idiaenumlinenumbers.md) +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaSession::findLinesByVA`](../../debugger/debug-interface-access/idiasession-findlinesbyva.md) diff --git a/docs/debugger/debug-interface-access/idiasession-findlinesbyrva.md b/docs/debugger/debug-interface-access/idiasession-findlinesbyrva.md index 68873a06fce..b4ebfae8a2b 100644 --- a/docs/debugger/debug-interface-access/idiasession-findlinesbyrva.md +++ b/docs/debugger/debug-interface-access/idiasession-findlinesbyrva.md @@ -1,7 +1,7 @@ --- description: "Retrieves the lines in a specified compiland that contain a specified relative virtual address (RVA)." title: "IDiaSession::findLinesByRVA" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -12,7 +12,7 @@ ms.author: "mikejo" manager: mijacobs ms.subservice: debug-diagnostics --- -# IDiaSession::findLinesByRVA +# `IDiaSession::findLinesByRVA` Retrieves the lines in a specified compiland that contain a specified relative virtual address (RVA). @@ -27,6 +27,7 @@ HRESULT findLinesByRVA (  ``` #### Parameters + `rva` [in] Specifies the address as an RVA. @@ -37,7 +38,7 @@ HRESULT findLinesByRVA (  `ppResult` -[out] Returns an [IDiaEnumLineNumbers](../../debugger/debug-interface-access/idiaenumlinenumbers.md) object that contains a list of all the line numbers that cover the specified address range. +[out] Returns an [`IDiaEnumLineNumbers`](../../debugger/debug-interface-access/idiaenumlinenumbers.md) object that contains a list of all the line numbers that cover the specified address range. ## Return Value If successful, returns `S_OK`; otherwise, returns an error code. @@ -62,5 +63,5 @@ IDiaEnumLineNumbers* GetLineNumbersByRVA(IDiaSymbol *pFunc, IDiaSession *pSessio ``` ## See also -- [IDiaEnumLineNumbers](../../debugger/debug-interface-access/idiaenumlinenumbers.md) -- [IDiaSession](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaEnumLineNumbers`](../../debugger/debug-interface-access/idiaenumlinenumbers.md) +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) diff --git a/docs/debugger/debug-interface-access/idiasession-findlinesbyva.md b/docs/debugger/debug-interface-access/idiasession-findlinesbyva.md index c262cf469d4..e3f9ce58095 100644 --- a/docs/debugger/debug-interface-access/idiasession-findlinesbyva.md +++ b/docs/debugger/debug-interface-access/idiasession-findlinesbyva.md @@ -1,7 +1,7 @@ --- description: "Retrieves the line number information for lines contained in a specified virtual address (VA) range." title: "IDiaSession::findLinesByVA" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -12,7 +12,7 @@ ms.author: "mikejo" manager: mijacobs ms.subservice: debug-diagnostics --- -# IDiaSession::findLinesByVA +# `IDiaSession::findLinesByVA` Retrieves the line number information for lines contained in a specified virtual address (VA) range. @@ -27,6 +27,7 @@ HRESULT findLinesByVA ( ``` #### Parameters + `va` [in] Specifies the address as a VA. @@ -37,7 +38,7 @@ HRESULT findLinesByVA ( `ppResult` -[out] Returns an [IDiaEnumLineNumbers](../../debugger/debug-interface-access/idiaenumlinenumbers.md) object that contains a list of all the line numbers that cover the specified address range. +[out] Returns an [`IDiaEnumLineNumbers`](../../debugger/debug-interface-access/idiaenumlinenumbers.md) object that contains a list of all the line numbers that cover the specified address range. ## Example This example shows a function that obtains all line numbers contained in a function using the function's virtual address and length. @@ -59,5 +60,5 @@ IDiaEnumLineNumbers *GetLineNumbersByVA(IDiaSymbol *pFunc, IDiaSession *pSession ``` ## See also -- [IDiaEnumLineNumbers](../../debugger/debug-interface-access/idiaenumlinenumbers.md) -- [IDiaSession](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaEnumLineNumbers`](../../debugger/debug-interface-access/idiaenumlinenumbers.md) +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) diff --git a/docs/debugger/debug-interface-access/idiasession-getexports.md b/docs/debugger/debug-interface-access/idiasession-getexports.md new file mode 100644 index 00000000000..3be74f71469 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-getexports.md @@ -0,0 +1,41 @@ +--- +description: "Retrieves an enumerator for all exported symbols." +title: "IDiaSession::getExports" +ms.date: "07/05/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::getExports method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::getExports + +Retrieves an enumerator for all exported symbols, symbols with `SymTagExport`, from a `.dll`. + +## Syntax + +```C++ +HRESULT getExports (  + IDiaEnumSymbols** ppResult +); +``` + +#### Parameters + + `ppResult` + +[out] Returns an [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) object that contains the list of symbols retrieved. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md) diff --git a/docs/debugger/debug-interface-access/idiasession-getfuncmdtokenmap.md b/docs/debugger/debug-interface-access/idiasession-getfuncmdtokenmap.md new file mode 100644 index 00000000000..939cf20348b --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-getfuncmdtokenmap.md @@ -0,0 +1,76 @@ +--- +description: "Retrieves the contents of the .NET Native metadata function token map." +title: "IDiaSession::getFuncMDTokenMap" +ms.date: "07/04/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::getFuncMDTokenMap method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::getFuncMDTokenMap + +Retrieves the contents of the .NET Native metadata function token map. + +## Syntax + +```C++ +HRESULT getFuncMDTokenMap( + DWORD cb, + DWORD *pcb, + BYTE *pb +); +``` + +#### Parameters + + `cb` + +[in] The size in bytes of the buffer pointed to by `pb` for receiving the .NET Native metadata function token map. + + `pcb` + +[out] Returns the size in bytes of the .NET Native metadata function token map (i.e. the number of bytes written into `pb`). + + `pb` + +[out] Buffer to receive the contents of the .NET Native metadata function token map. This must be at least `cb` bytes in size. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + + ## Example + + This shows how to retrieve the size of the map and then retrieve the full token map. + + ```C++ +DWORD size = 0; +HRESULT hr = pDiaSession->getFuncMDTokenMapSize(&size); +if (FAILED(hr)) { + return hr; +} +if (size == 0) { + return S_FALSE; +} + +BYTE * map = new (std::nothrow) BYTE[size]; +if (map == nullptr) { + return E_OUTOFMEMORY; +} + +hr = pDiaSession->getFuncMDTokenMap(size, &size, map); +if (FAILED(hr)) { + delete [] map; + return hr; +} +``` + +## See also + +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaSession::getFuncMDTokenMapSize`](../../debugger/debug-interface-access/idiasession-getfuncmdtokenmapsize.md) diff --git a/docs/debugger/debug-interface-access/idiasession-getfuncmdtokenmapsize.md b/docs/debugger/debug-interface-access/idiasession-getfuncmdtokenmapsize.md new file mode 100644 index 00000000000..9406cd236e5 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-getfuncmdtokenmapsize.md @@ -0,0 +1,39 @@ +--- +description: "Retrieves the size, in bytes, of the .NET Native metadata function token map." +title: "IDiaSession::getFuncMDTokenMapSize" +ms.date: "07/04/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::getFuncMDTokenMapSize method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::getFuncMDTokenMapSize + +Retrieves the size, in bytes, of the .NET Native metadata function token map. + +## Syntax + +```C++ +HRESULT getFuncMDTokenMapSize( + DWORD *pcb +); +``` + +#### Parameters + + `pcb` + +[out] Returns the size in bytes of the .NET Native metadata function token map. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) diff --git a/docs/debugger/debug-interface-access/idiasession-getfunctionfragments_rva.md b/docs/debugger/debug-interface-access/idiasession-getfunctionfragments_rva.md new file mode 100644 index 00000000000..f7a768655dd --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-getfunctionfragments_rva.md @@ -0,0 +1,114 @@ +--- +description: "Retrieves the addresses and lengths of discontiguous fragments for the function at the specified relative virtual address (RVA)." +title: "IDiaSession::getFunctionFragments_RVA" +ms.date: "07/05/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::getFunctionFragments_RVA method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::getFunctionFragments_RVA + +Retrieves the addresses and lengths of discontiguous fragments for the function at the specified relative virtual address (RVA). + +## Syntax + +```C++ +HRESULT getFunctionFragments_RVA( + DWORD rvaFunc, + DWORD cbFunc, + DWORD cFragments, + DWORD *pRvaFragment, + DWORD *pLenFragment +); +``` + +#### Parameters + + `rvaFunc` + +[in] The relative virtual address of the function. + + `cbFunc` + +[in] The total size in bytes of the function (i.e. the length of the function). + +`cFragments` + +[in] The count of elements allocated for `pRvaFragment` and `pLenFragment`. + + `pRvaFragment` + +[out] Array buffer to receive the relative virtual addresses of each fragment. This must be at least `cFragments` long. + + `pLenFragment` + +[out] Array buffer to receive the length, in bytes, of each fragment. This must be at least `cFragments` long. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + + ## Example + + This shows how to retrieve the address and length of a function via `IDiaSymbol`, then the number of fragments, retrieve the set of function fragments and then print them as a list of start and end addresses. + + ```C++ +HRESULT PrintFunctionFragments(CComPtr pFunc) { + DWORD rvaStart = 0; + ULONGLONG cbFunc = 0; + + HRESULT hr = pFunc->get_relativeVirtualAddress(&rvaStart); + if (FAILED(hr)) { + return hr; + } + hr = pFunc->get_length(&cbFunc); + if (FAILED(hr)) { + return hr; + } + + DWORD cFragments = 0; + + hr = pSession->getNumberOfFunctionFragments_RVA(rvaStart, (DWORD) cbFunc, &cFragments); + if (FAILED(hr)) { + return hr; + } + + DWORD * rgRVA = new (std::nothrow) DWORD[cFragments]; + if (rgRVA == nullptr) { + return E_OUTOFMEMORY; + } + + DWORD * rgLen = new (std::nothrow) DWORD[cFragments]; + if (rgLen == nullptr) { + delete[] rgRVA; + return E_OUTOFMEMORY; + } + + hr = pSession->getFunctionFragments_RVA(rvaStart, (DWORD) cbFunc, cFragments, rgRVA, rgLen); + if (FAILED(hr)) { + delete[] rgRVA; + delete[] rgLen; + return hr; + + } + for (DWORD i = 0; i < cFragments; i++) { + printf(" %08X -- %08X\n", rgRVA[i], rgRVA[i] + rgLen[i] - 1); + } + + delete [] rgRVA; + delete [] rgLen; + + return S_OK; +} +``` + +## See also + +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaSession::getNumberOfFunctionFragments_RVA`](../../debugger/debug-interface-access/idiasession-getnumberoffunctionfragments_rva.md) diff --git a/docs/debugger/debug-interface-access/idiasession-getfunctionfragments_va.md b/docs/debugger/debug-interface-access/idiasession-getfunctionfragments_va.md new file mode 100644 index 00000000000..a13198c843c --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-getfunctionfragments_va.md @@ -0,0 +1,114 @@ +--- +description: "Retrieves the addresses and lengths of discontiguous fragments for the function at the specified virtual address (VA)." +title: "IDiaSession::getFunctionFragments_VA" +ms.date: "07/05/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::getFunctionFragments_VA method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::getFunctionFragments_VA + +Retrieves the addresses and lengths of discontiguous fragments for the function at the specified virtual address (VA). + +## Syntax + +```C++ +HRESULT getFunctionFragments_VA( + ULONGLONG vaFunc, + DWORD cbFunc, + DWORD cFragments, + ULONGLONG *pVaFragment, + DWORD *pLenFragment +); +``` + +#### Parameters + + `vaFunc` + +[in] The virtual address of the function. + + `cbFunc` + +[in] The total size in bytes of the function (i.e. the length of the function). + +`cFragments` + +[in] The count of elements allocated for `pVaFragment` and `pLenFragment`. + + `pVaFragment` + +[out] Array buffer to receive the virtual addresses of each fragment. This must be at least `cFragments` long. + + `pLenFragment` + +[out] Array buffer to receive the length, in bytes, of each fragment. This must be at least `cFragments` long. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + + ## Example + + This shows how to retrieve the address and length of a function via `IDiaSymbol`, then the number of fragments, retrieve the set of function fragments and then print them as a list of start and end addresses. + + ```C++ +HRESULT PrintFunctionFragments(CComPtr pFunc) { + ULONGLONG vaStart = 0; + ULONGLONG cbFunc = 0; + + HRESULT hr = pFunc->get_relativeVirtualAddress(&vaStart); + if (FAILED(hr)) { + return hr; + } + hr = pFunc->get_length(&cbFunc); + if (FAILED(hr)) { + return hr; + } + + DWORD cFragments = 0; + + hr = pSession->getNumberOfFunctionFragments_VA(vaStart, (DWORD) cbFunc, &cFragments); + if (FAILED(hr)) { + return hr; + } + + ULONGLONG * rgVA = new (std::nothrow) ULONGLONG[cFragments]; + if (rgVA == nullptr) { + return E_OUTOFMEMORY; + } + + DWORD * rgLen = new (std::nothrow) DWORD[cFragments]; + if (rgLen == nullptr) { + delete[] rgVA; + return E_OUTOFMEMORY; + } + + hr = pSession->getFunctionFragments_VA(vaStart, (DWORD) cbFunc, cFragments, rgVA, rgLen); + if (FAILED(hr)) { + delete[] rgVA; + delete[] rgLen; + return hr; + + } + for (DWORD i = 0; i < cFragments; i++) { + printf(" %016llX -- %016llX\n", rgVA[i], rgVA[i] + rgLen[i] - 1); + } + + delete [] rgVA; + delete [] rgLen; + + return S_OK; +} +``` + +## See also + +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaSession::getNumberOfFunctionFragments_VA`](../../debugger/debug-interface-access/idiasession-getnumberoffunctionfragments_va.md) diff --git a/docs/debugger/debug-interface-access/idiasession-getheapallocationsites.md b/docs/debugger/debug-interface-access/idiasession-getheapallocationsites.md new file mode 100644 index 00000000000..795498517d5 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-getheapallocationsites.md @@ -0,0 +1,41 @@ +--- +description: "Retrieves an enumerator for all SymTagHeapAllocationSite symbols." +title: "IDiaSession::getHeapAllocationSites" +ms.date: "07/05/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::getHeapAllocationSites method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::getHeapAllocationSites + +Retrieves an enumerator for all `SymTagHeapAllocationSite` symbols. + +## Syntax + +```C++ +HRESULT getHeapAllocationSites (  + IDiaEnumSymbols** ppResult +); +``` + +#### Parameters + + `ppResult` + +[out] Returns an [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) object that contains the list of symbols retrieved. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md) diff --git a/docs/debugger/debug-interface-access/idiasession-getnumberoffunctionfragments_rva.md b/docs/debugger/debug-interface-access/idiasession-getnumberoffunctionfragments_rva.md new file mode 100644 index 00000000000..42bf565daf8 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-getnumberoffunctionfragments_rva.md @@ -0,0 +1,50 @@ +--- +description: "Retrieves the number of discontiguous fragments for the function at the specified relative virtual address (RVA)." +title: "IDiaSession::getNumberOfFunctionFragments_RVA" +ms.date: "07/05/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::getNumberOfFunctionFragments_RVA method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::getNumberOfFunctionFragments_RVA + +Retrieves the number of discontiguous fragments for the function at the specified relative virtual address (RVA). + +## Syntax + +```C++ +HRESULT getNumberOfFunctionFragments_RVA( + DWORD rvaFunc, + DWORD cbFunc, + DWORD *pNumFragments +); +``` + +#### Parameters + + `rvaFunc` + +[in] The relative virtual address of the function. + + `cbFunc` + +[in] The total size in bytes of the function (i.e. the length of the function). + +`pNumFragments` + +[out] The number of fragments. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaSession::getFunctionFragments_RVA`](../../debugger/debug-interface-access/idiasession-getfunctionfragments_rva.md) diff --git a/docs/debugger/debug-interface-access/idiasession-getnumberoffunctionfragments_va.md b/docs/debugger/debug-interface-access/idiasession-getnumberoffunctionfragments_va.md new file mode 100644 index 00000000000..3b6109722f3 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-getnumberoffunctionfragments_va.md @@ -0,0 +1,50 @@ +--- +description: "Retrieves the number of discontiguous fragments for the function at the specified virtual address (VA)." +title: "IDiaSession::getNumberOfFunctionFragments_VA" +ms.date: "07/05/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::getNumberOfFunctionFragments_VA method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::getNumberOfFunctionFragments_VA + +Retrieves the number of discontiguous fragments for the function at the specified virtual address (VA). + +## Syntax + +```C++ +HRESULT getNumberOfFunctionFragments_VA( + ULONGLONG vaFunc, + DWORD cbFunc, + DWORD *pNumFragments +); +``` + +#### Parameters + + `vaFunc` + +[in] The virtual address of the function. + + `cbFunc` + +[in] The total size in bytes of the function (i.e. the length of the function). + +`pNumFragments` + +[out] The number of fragments. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaSession::getFunctionFragments_VA`](../../debugger/debug-interface-access/idiasession-getfunctionfragments_va.md) diff --git a/docs/debugger/debug-interface-access/idiasession-gettypemdtokenmap.md b/docs/debugger/debug-interface-access/idiasession-gettypemdtokenmap.md new file mode 100644 index 00000000000..f8fef4bba51 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-gettypemdtokenmap.md @@ -0,0 +1,76 @@ +--- +description: "Retrieves the contents of the .NET Native metadata type token map." +title: "IDiaSession::getTypeMDTokenMap" +ms.date: "07/04/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::getTypeMDTokenMap method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::getTypeMDTokenMap + +Retrieves the contents of the .NET Native metadata type token map. + +## Syntax + +```C++ +HRESULT getTypeMDTokenMap( + DWORD cb, + DWORD *pcb, + BYTE *pb +); +``` + +#### Parameters + + `cb` + +[in] The size in bytes of the buffer pointed to by `pb` for receiving the .NET Native metadata type token map. + + `pcb` + +[out] Returns the size in bytes of the .NET Native metadata type token map (i.e. the number of bytes written into `pb`). + + `pb` + +[out] Buffer to receive the contents of the .NET Native metadata type token map. This must be at least `cb` bytes in size. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## Example + + This shows how to retrieve the size of the map and then retrieve the full token map. + + ```C++ +DWORD size = 0; +HRESULT hr = pDiaSession->getTypeMDTokenMapSize(&size); +if (FAILED(hr)) { + return hr; +} +if (size == 0) { + return S_FALSE; +} + +BYTE * map = new (std::nothrow) BYTE[size]; +if (map == nullptr) { + return E_OUTOFMEMORY; +} + +hr = pDiaSession->getTypeMDTokenMap(size, &size, map); +if (FAILED(hr)) { + delete [] map; + return hr; +} +``` + +## See also + +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) +- [`IDiaSession::getTypeMDTokenMapSize`](../../debugger/debug-interface-access/idiasession-gettypemdtokenmapsize.md) \ No newline at end of file diff --git a/docs/debugger/debug-interface-access/idiasession-gettypemdtokenmapsize.md b/docs/debugger/debug-interface-access/idiasession-gettypemdtokenmapsize.md new file mode 100644 index 00000000000..3fa8abb73f0 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasession-gettypemdtokenmapsize.md @@ -0,0 +1,39 @@ +--- +description: "Retrieves the size, in bytes, of the .NET Native metadata type token map." +title: "IDiaSession::getTypeMDTokenMapSize" +ms.date: "07/04/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSession::getTypeMDTokenMapSize method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSession::getTypeMDTokenMapSize + +Retrieves the size, in bytes, of the .NET Native metadata type token map. + +## Syntax + +```C++ +HRESULT getTypeMDTokenMapSize( + DWORD *pcb +); +``` + +#### Parameters + + `pcb` + +[out] Returns the size in bytes of the .NET Native metadata type token map. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## See also + +- [`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) diff --git a/docs/debugger/debug-interface-access/idiasession.md b/docs/debugger/debug-interface-access/idiasession.md index 7bb8928b45d..d01da060143 100644 --- a/docs/debugger/debug-interface-access/idiasession.md +++ b/docs/debugger/debug-interface-access/idiasession.md @@ -1,7 +1,7 @@ --- description: "Provides a query context for debug symbols." title: "IDiaSession" -ms.date: "11/04/2016" +ms.date: "07/03/2024" ms.topic: "reference" dev_langs: - "C++" @@ -27,47 +27,72 @@ The following table shows the methods of `IDiaSession`. |Method|Description| |------------|-----------------| -|[IDiaSession::get_loadAddress](../../debugger/debug-interface-access/idiasession-get-loadaddress.md)|Retrieves the load address for the executable file that corresponds to the symbols in this symbol store. This is the same value that was passed to the `put_loadAddress` method.| -|[IDiaSession::put_loadAddress](../../debugger/debug-interface-access/idiasession-put-loadaddress.md)|Sets the load address for the executable file that corresponds to the symbols in this symbol store. **Note:** It is important to call this method when you get an `IDiaSession` object and before you start using the object.| -|[IDiaSession::get_globalScope](../../debugger/debug-interface-access/idiasession-get-globalscope.md)|Retrieves a reference to the global scope.| -|[IDiaSession::getEnumTables](../../debugger/debug-interface-access/idiasession-getenumtables.md)|Retrieves an enumerator for all tables contained in the symbol store.| -|[IDiaSession::getSymbolsByAddr](../../debugger/debug-interface-access/idiasession-getsymbolsbyaddr.md)|Retrieves an enumerator for all named symbols at static locations.| -|[IDiaSession::findChildren](../../debugger/debug-interface-access/idiasession-findchildren.md)|Retrieves all children of a specified parent identifier that match the name and symbol type.| -|[IDiaSession::findSymbolByAddr](../../debugger/debug-interface-access/idiasession-findsymbolbyaddr.md)|Retrieves a specified symbol type that contains, or is closest to, a specified address.| -|[IDiaSession::findSymbolByRVA](../../debugger/debug-interface-access/idiasession-findsymbolbyrva.md)|Retrieves a specified symbol type that contains, or is closest to, a specified relative virtual address (RVA).| -|[IDiaSession::findSymbolByVA](../../debugger/debug-interface-access/idiasession-findsymbolbyva.md)|Retrieves a specified symbol type that contains, or is closest to, a specified virtual address (VA).| -|[IDiaSession::findSymbolByToken](../../debugger/debug-interface-access/idiasession-findsymbolbytoken.md)|Retrieves the symbol that contains a specified metadata token.| -|[IDiaSession::symsAreEquiv](../../debugger/debug-interface-access/idiasession-symsareequiv.md)|Checks to see if two symbols are equivalent.| -|[IDiaSession::symbolById](../../debugger/debug-interface-access/idiasession-symbolbyid.md)|Retrieves a symbol by its unique identifier.| -|[IDiaSession::findSymbolByRVAEx](../../debugger/debug-interface-access/idiasession-findsymbolbyrvaex.md)|Retrieves a specified symbol type that contains, or is closest to, a specified relative virtual address and offset.| -|[IDiaSession::findSymbolByVAEx](../../debugger/debug-interface-access/idiasession-findsymbolbyvaex.md)|Retrieves a specified symbol type that contains, or is closest to, a specified virtual address and offset.| -|[IDiaSession::findFile](../../debugger/debug-interface-access/idiasession-findfile.md)|Retrieves a source file by compiland and name.| -|[IDiaSession::findFileById](../../debugger/debug-interface-access/idiasession-findfilebyid.md)|Retrieves a source file by source file identifier.| -|[IDiaSession::findLines](../../debugger/debug-interface-access/idiasession-findlines.md)|Retrieves line numbers within a specified compiland and source file identifier.| -|[IDiaSession::findLinesByAddr](../../debugger/debug-interface-access/idiasession-findlinesbyaddr.md)|Retrieves the lines in a specified compiland that contain a specified address.| -|[IDiaSession::findLinesByRVA](../../debugger/debug-interface-access/idiasession-findlinesbyrva.md)|Retrieves the lines in a specified compiland that contain a specified relative virtual address.| -|[IDiaSession::findLinesByVA](../../debugger/debug-interface-access/idiasession-findlinesbyva.md)|Finds the line number information for lines contained in a specified address range.| -|[IDiaSession::findLinesByLinenum](../../debugger/debug-interface-access/idiasession-findlinesbylinenum.md)|Retrieves the lines in a specified compiland by source file and line number.| -|[IDiaSession::findInjectedSource](../../debugger/debug-interface-access/idiasession-findinjectedsource.md)|Retrieves a source that has been placed into the symbol store by attribute providers or other components of the compilation process.| -|[IDiaSession::getEnumDebugStreams](../../debugger/debug-interface-access/idiasession-getenumdebugstreams.md)|Retrieves an enumerated sequence of debug data streams.| -|[IDiaSession::findInlineFramesByAddr](../../debugger/debug-interface-access/idiasession-findinlineframesbyaddr.md)|Retrieves an enumeration that allows a client to iterate through all of the inline frames on a given address.| -|[IDiaSession::findInlineFramesByRVA](../../debugger/debug-interface-access/idiasession-findinlineframesbyrva.md)|Retrieves an enumeration that allows a client to iterate through all of the inline frames on a specified relative virtual address (RVA).| -|[IDiaSession::findInlineFramesByVA](../../debugger/debug-interface-access/idiasession-findinlineframesbyva.md)|Retrieves an enumeration that allows a client to iterate through all of the inline frames on a specified virtual address (VA).| -|[IDiaSession::findInlineeLines](../../debugger/debug-interface-access/idiasession-findinlineelines.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, by the specified parent symbol.| -|[IDiaSession::findInlineeLinesByAddr](../../debugger/debug-interface-access/idiasession-findinlineelinesbyaddr.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, by the specified parent symbol and are contained within the specified address range.| -|[IDiaSession::findInlineeLinesByRVA](../../debugger/debug-interface-access/idiasession-findinlineelinesbyrva.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, by the specified parent symbol and are contained within the specified relative virtual address (RVA).| -|[IDiaSession::findInlineeLinesByVA](../../debugger/debug-interface-access/idiasession-findinlineelinesbyva.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, by the specified parent symbol and are contained within the specified virtual address (VA).| -|[IDiaSession::findInlineeLinesByLinenum](../../debugger/debug-interface-access/idiasession-findinlineelinesbylinenum.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in the specified source file and line number.| -|[IDiaSession::findInlineesByName](../../debugger/debug-interface-access/idiasession-findinlineesbyname.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all inlined functions that match a specified name.| -|[IDiaSession::findSymbolsForAcceleratorPointerTag](../../debugger/debug-interface-access/idiasession-findsymbolsforacceleratorpointertag.md)|Returns an enumeration of symbols for the variable that the specified tag value corresponds to in the parent Accelerator stub function.| -|[IDiaSession::findSymbolsByRVAForAcceleratorPointerTag](../../debugger/debug-interface-access/idiasession-findsymbolsbyrvaforacceleratorpointertag.md)|Given a corresponding tag value, this method returns an enumeration of symbols that are contained in a specified parent Accelerator stub function at a specified relative virtual address.| -|[IDiaSession::findAcceleratorInlineesByName](../../debugger/debug-interface-access/idiasession-findacceleratorinlineesbyname.md)|Returns an enumeration of symbols for inline frames corresponding to the specified inline function name.| -|[IDiaSession::findAcceleratorInlineesByLinenum](../../debugger/debug-interface-access/idiasession-findacceleratorinlineesbylinenum.md)|Returns an enumeration of symbols for inline frames that correspond to the specified source location.| +|[`IDiaSession::get_loadAddress`](../../debugger/debug-interface-access/idiasession-get-loadaddress.md)|Retrieves the load address for the executable file that corresponds to the symbols in this symbol store. This is the same value that was passed to the `put_loadAddress` method.| +|[`IDiaSession::put_loadAddress`](../../debugger/debug-interface-access/idiasession-put-loadaddress.md)|Sets the load address for the executable file that corresponds to the symbols in this symbol store. **Note:** It is important to call this method when you get an `IDiaSession` object and before you start using the object.| +|[`IDiaSession::get_globalScope`](../../debugger/debug-interface-access/idiasession-get-globalscope.md)|Retrieves a reference to the global scope.| +|[`IDiaSession::getEnumTables`](../../debugger/debug-interface-access/idiasession-getenumtables.md)|Retrieves an enumerator for all tables contained in the symbol store.| +|[`IDiaSession::getSymbolsByAddr`](../../debugger/debug-interface-access/idiasession-getsymbolsbyaddr.md)|Retrieves an enumerator for all named symbols at static locations.| +|[`IDiaSession::findChildren`](../../debugger/debug-interface-access/idiasession-findchildren.md)|Retrieves all children of a specified parent identifier that match the name and symbol type.| +|[`IDiaSession::findChildrenEx`](../../debugger/debug-interface-access/idiasession-findchildrenex.md)|Retrieves all children of a specified parent identifier that match the name and symbol type, including optimized locals.| +|[`IDiaSession::findChildrenExByAddr`](../../debugger/debug-interface-access/idiasession-findchildrenexbyaddr.md)|Retrieves all children of a specified parent identifier that match the name and symbol type, including optimized locals, that contains, or is closest to, a specified address.| +|[`IDiaSession::findChildrenExByVA`](../../debugger/debug-interface-access/idiasession-findchildrenexbyva.md)|Retrieves all children of a specified parent identifier that match the name and symbol type, including optimized locals, that contains, or is closest to, a specified virtual address (VA).| +|[`IDiaSession::findChildrenExByRVA`](../../debugger/debug-interface-access/idiasession-findchildrenexbyrva.md)|Retrieves all children of a specified parent identifier that match the name and symbol type, including optimized locals, that contains, or is closest to, a specified relative virtual address (RVA).| +|[`IDiaSession::findSymbolByAddr`](../../debugger/debug-interface-access/idiasession-findsymbolbyaddr.md)|Retrieves a specified symbol type that contains, or is closest to, a specified address.| +|[`IDiaSession::findSymbolByRVA`](../../debugger/debug-interface-access/idiasession-findsymbolbyrva.md)|Retrieves a specified symbol type that contains, or is closest to, a specified relative virtual address (RVA).| +|[`IDiaSession::findSymbolByVA`](../../debugger/debug-interface-access/idiasession-findsymbolbyva.md)|Retrieves a specified symbol type that contains, or is closest to, a specified virtual address (VA).| +|[`IDiaSession::findSymbolByToken`](../../debugger/debug-interface-access/idiasession-findsymbolbytoken.md)|Retrieves the symbol that contains a specified metadata token.| +|[`IDiaSession::symsAreEquiv`](../../debugger/debug-interface-access/idiasession-symsareequiv.md)|Checks to see if two symbols are equivalent.| +|[`IDiaSession::symbolById`](../../debugger/debug-interface-access/idiasession-symbolbyid.md)|Retrieves a symbol by its unique identifier.| +|[`IDiaSession::findSymbolByRVAEx`](../../debugger/debug-interface-access/idiasession-findsymbolbyrvaex.md)|Retrieves a specified symbol type that contains, or is closest to, a specified relative virtual address and offset.| +|[`IDiaSession::findSymbolByVAEx`](../../debugger/debug-interface-access/idiasession-findsymbolbyvaex.md)|Retrieves a specified symbol type that contains, or is closest to, a specified virtual address and offset.| +|[`IDiaSession::findFile`](../../debugger/debug-interface-access/idiasession-findfile.md)|Retrieves a source file by compiland and name.| +|[`IDiaSession::findFileById`](../../debugger/debug-interface-access/idiasession-findfilebyid.md)|Retrieves a source file by source file identifier.| +|[`IDiaSession::findLines`](../../debugger/debug-interface-access/idiasession-findlines.md)|Retrieves line numbers within a specified compiland and source file identifier.| +|[`IDiaSession::findLinesByAddr`](../../debugger/debug-interface-access/idiasession-findlinesbyaddr.md)|Retrieves the lines in a specified compiland that contain a specified address.| +|[`IDiaSession::findLinesByRVA`](../../debugger/debug-interface-access/idiasession-findlinesbyrva.md)|Retrieves the lines in a specified compiland that contain a specified relative virtual address.| +|[`IDiaSession::findLinesByVA`](../../debugger/debug-interface-access/idiasession-findlinesbyva.md)|Finds the line number information for lines contained in a specified address range.| +|[`IDiaSession::findLinesByLinenum`](../../debugger/debug-interface-access/idiasession-findlinesbylinenum.md)|Retrieves the lines in a specified compiland by source file and line number.| +|[`IDiaSession::findInjectedSource`](../../debugger/debug-interface-access/idiasession-findinjectedsource.md)|Retrieves a source that has been placed into the symbol store by attribute providers or other components of the compilation process.| +|[`IDiaSession::getEnumDebugStreams`](../../debugger/debug-interface-access/idiasession-getenumdebugstreams.md)|Retrieves an enumerated sequence of debug data streams.| +|[`IDiaSession::findInlineFramesByAddr`](../../debugger/debug-interface-access/idiasession-findinlineframesbyaddr.md)|Retrieves an enumeration that allows a client to iterate through all of the inline frames on a given address.| +|[`IDiaSession::findInlineFramesByRVA`](../../debugger/debug-interface-access/idiasession-findinlineframesbyrva.md)|Retrieves an enumeration that allows a client to iterate through all of the inline frames on a specified relative virtual address (RVA).| +|[`IDiaSession::findInlineFramesByVA`](../../debugger/debug-interface-access/idiasession-findinlineframesbyva.md)|Retrieves an enumeration that allows a client to iterate through all of the inline frames on a specified virtual address (VA).| +|[`IDiaSession::findInlineeLines`](../../debugger/debug-interface-access/idiasession-findinlineelines.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, by the specified parent symbol.| +|[`IDiaSession::findInlineeLinesByAddr`](../../debugger/debug-interface-access/idiasession-findinlineelinesbyaddr.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, by the specified parent symbol and are contained within the specified address range.| +|[`IDiaSession::findInlineeLinesByRVA`](../../debugger/debug-interface-access/idiasession-findinlineelinesbyrva.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, by the specified parent symbol and are contained within the specified relative virtual address (RVA).| +|[`IDiaSession::findInlineeLinesByVA`](../../debugger/debug-interface-access/idiasession-findinlineelinesbyva.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, by the specified parent symbol and are contained within the specified virtual address (VA).| +|[`IDiaSession::findInlineeLinesByLinenum`](../../debugger/debug-interface-access/idiasession-findinlineelinesbylinenum.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in the specified source file and line number.| +|[`IDiaSession::findInlineesByName`](../../debugger/debug-interface-access/idiasession-findinlineesbyname.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all inlined functions that match a specified name.| +|[`IDiaSession::findAcceleratorInlineesByLinenum`](../../debugger/debug-interface-access/idiasession-findacceleratorinlineesbylinenum.md)|Returns an enumeration of symbols for inline frames that correspond to the specified source location.| +|[`IDiaSession::findSymbolsForAcceleratorPointerTag`](../../debugger/debug-interface-access/idiasession-findsymbolsforacceleratorpointertag.md)|Returns an enumeration of symbols for the variable that the specified tag value corresponds to in the parent Accelerator stub function.| +|[`IDiaSession::findSymbolsByRVAForAcceleratorPointerTag`](../../debugger/debug-interface-access/idiasession-findsymbolsbyrvaforacceleratorpointertag.md)|Given a corresponding tag value, this method returns an enumeration of symbols that are contained in a specified parent Accelerator stub function at a specified relative virtual address.| +|[`IDiaSession::findAcceleratorInlineesByName`](../../debugger/debug-interface-access/idiasession-findacceleratorinlineesbyname.md)|Returns an enumeration of symbols for inline frames corresponding to the specified inline function name.| +|[`IDiaSession::addressForVA`](../../debugger/debug-interface-access/idiasession-addressForVA.md)|Returns the equivalent address for the specified virtual address (VA).| +|[`IDiaSession::addressForRVA`](../../debugger/debug-interface-access/idiasession-addressforrva.md)|Returns the equivalent address for the specified relative virtual address (RVA).| +|[`IDiaSession::findILOffsetsByAddr`](../../debugger/debug-interface-access/idiasession-findiloffsetsbyaddr.md)|Retrieves an enumeration that allows a client to iterate through the MSIL offsets within a specified address range.| +|[`IDiaSession::findILOffsetsByRVA`](../../debugger/debug-interface-access/idiasession-findiloffsetsbyrva.md)|Retrieves an enumeration that allows a client to iterate through the MSIL offsets within a specified relative virtual address (RVA) range.| +|[`IDiaSession::findILOffsetsByVA`](../../debugger/debug-interface-access/idiasession-findiloffsetsbyva.md)|Retrieves an enumeration that allows a client to iterate through the MSIL offsets within a specified virtual address (VA) range.| +|[`IDiaSession::findInputAssemblyFiles`](../../debugger/debug-interface-access/idiasession-findinputassemblyfiles.md)|Retrieves an enumeration that allows a client to iterate through the .NET Native input assembly files.| +|[`IDiaSession::findInputAssembly`](../../debugger/debug-interface-access/idiasession-findinputassembly.md)|Retrieves a .NET Native input assembly file by index.| +|[`IDiaSession::findInputAssemblyById`](../../debugger/debug-interface-access/idiasession-findinputassemblybyid.md)|Retrieves .NET Native input assembly file by unique identifier.| +|[`IDiaSession::getFuncMDTokenMapSize`](../../debugger/debug-interface-access/idiasession-getfuncmdtokenmapsize.md)|Retrieves the size, in bytes, of the .NET Native metadata function token map.| +|[`IDiaSession::getFuncMDTokenMap`](../../debugger/debug-interface-access/idiasession-getfuncmdtokenmap.md)|Retrieves the contents of the .NET Native metadata function token map.| +|[`IDiaSession::getTypeMDTokenMapSize`](../../debugger/debug-interface-access/idiasession-gettypemdtokenmapsize.md)|Retrieves the size, in bytes, of the .NET Native metadata type token map.| +|[`IDiaSession::getTypeMDTokenMap`](../../debugger/debug-interface-access/idiasession-gettypemdtokenmap.md)|Retrieves the contents of the .NET Native metadata type token map.| +|[`IDiaSession::getNumberOfFunctionFragments_VA`](../../debugger/debug-interface-access/idiasession-getnumberoffunctionfragments_va.md)|Retrieves the number of discontiguous fragments for the function at the specified virtual address (VA).| +|[`IDiaSession::getNumberOfFunctionFragments_RVA`](../../debugger/debug-interface-access/idiasession-getnumberoffunctionfragments_rva.md)|Retrieves the number of discontiguous fragments for the function at the specified relative virtual address (RVA).| +|[`IDiaSession::getFunctionFragments_VA`](../../debugger/debug-interface-access/idiasession-getfunctionfragments_va.md)|Retrieves the addresses and lengths of discontiguous fragments for the function at the specified virtual address (VA).| +|[`IDiaSession::getFunctionFragments_RVA`](../../debugger/debug-interface-access/idiasession-getfunctionfragments_rva.md)|Retrieves the addresses and lengths of discontiguous fragments for the function at the specified relative virtual address (RVA).| +|[`IDiaSession::getExports`](../../debugger/debug-interface-access/idiasession-getexports.md)|Retrieves an enumerator for all exported symbols.| +|[`IDiaSession::getHeapAllocationSites`](../../debugger/debug-interface-access/idiasession-getheapallocationsites.md)|Retrieves an enumerator for all `SymTagHeapAllocationSite` symbols.| +|[`IDiaSession::findInputAssemblyFile`](../../debugger/debug-interface-access/idiasession-findinputassemblyfile.md)|Retrieves the .NET Native input assembly file that is the parent of the specified symbol.| ## Remarks -It is important to call the [IDiaSession::put_loadAddress](../../debugger/debug-interface-access/idiasession-put-loadaddress.md) method after creating the `IDiaSession` object — and the value passed to the `put_loadAddress` method must be non-zero — for any virtual address (VA) properties of symbols to be accessible. The load address comes from whatever program loaded the executable being debugged. For example, you can call the Win32 function `GetModuleInformation` to retrieve the load address for the executable, given a handle to the executable. + +It is important to call the [`IDiaSession::put_loadAddress`](../../debugger/debug-interface-access/idiasession-put-loadaddress.md) method after creating the `IDiaSession` object — and the value passed to the `put_loadAddress` method must be non-zero — for any virtual address (VA) properties of symbols to be accessible. The load address comes from whatever program loaded the executable being debugged. For example, you can call the Win32 function `GetModuleInformation` to retrieve the load address for the executable, given a handle to the executable. ## Example + This example shows how to obtain the `IDiaSession` interface as part of a general initialization of the DIA SDK. ```C++ @@ -114,8 +139,8 @@ DLL: msdia80.dll - [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) - [Overview](../../debugger/debug-interface-access/overview-debug-interface-access-sdk.md) - [Exe](../../debugger/debug-interface-access/exe.md) -- [IDiaAddressMap](../../debugger/debug-interface-access/idiaaddressmap.md) -- [IDiaDataSource](../../debugger/debug-interface-access/idiadatasource.md) -- [IDiaDataSource::openSession](../../debugger/debug-interface-access/idiadatasource-opensession.md) -- [IDiaSymbol::findChildren](../../debugger/debug-interface-access/idiasymbol-findchildren.md) +- [`IDiaAddressMap`](../../debugger/debug-interface-access/idiaaddressmap.md) +- [`IDiaDataSource`](../../debugger/debug-interface-access/idiadatasource.md) +- [`IDiaDataSource::openSession`](../../debugger/debug-interface-access/idiadatasource-opensession.md) +- [`IDiaSymbol::findChildren`](../../debugger/debug-interface-access/idiasymbol-findchildren.md) - [Querying the .Pdb File](../../debugger/debug-interface-access/querying-the-dot-pdb-file.md) diff --git a/docs/debugger/debug-interface-access/idiasessionex-getsourcelinkinfo.md b/docs/debugger/debug-interface-access/idiasessionex-getsourcelinkinfo.md new file mode 100644 index 00000000000..e36bf7a933c --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasessionex-getsourcelinkinfo.md @@ -0,0 +1,48 @@ +--- +description: "Retrieves an enumeration of source link information." +title: "IDiaSessionEx::getSourceLinkInfo" +ms.date: "07/05/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSessionEx::getSourceLinkInfo method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSessionEx::getSourceLinkInfo + +Retrieves an enumeration of [Source Link](https://github.com/dotnet/designs/blob/master/accepted/2020/diagnostics/source-link.md) information. + +## Syntax + +```C++ +HRESULT getSourceLinkInfo( + IDiaSymbol* parent, + IDiaEnumSourceLink** ppEnum +); +``` + +#### Parameters + + `parent` + + [in] If not `nullptr`, specifies the `SymTagCompiland` symbol to query for source link information. Otherwise this method enumerates all source link information. + + `ppEnum` + +[out] Returns an [`IDiaEnumSourceLine`](../../debugger/debug-interface-access/idiaenumsourcelink.md) object that contains the list of source link information . + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + + +## See also + +- [`IDiaSessionEx`](../../debugger/debug-interface-access/idiasessionex.md) +- [Source Link](https://github.com/dotnet/designs/blob/master/accepted/2020/diagnostics/source-link.md) +- [Using Source Link](https://github.com/dotnet/sourcelink#using-source-link-in-c-projects) +- [/SOURCELINK (Include Source Link file in PDB)](/cpp/build/reference/sourcelink) diff --git a/docs/debugger/debug-interface-access/idiasessionex-isfastlinkpdb.md b/docs/debugger/debug-interface-access/idiasessionex-isfastlinkpdb.md new file mode 100644 index 00000000000..c8a5b09dda4 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasessionex-isfastlinkpdb.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves a boolean indicating that the source debug information was produced with /DEBUG:fastlink." +title: "IDiaSessionEx::isFastLinkPDB" +ms.date: "07/05/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSessionEx::isFastLinkPDB method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSessionEx::isFastLinkPDB + +Retrieves a boolean indicating that the source debug information was produced with `/DEBUG:fastlink`. + +## Syntax + +```C++ +HRESULT isFastLinkPDB( + BOOL* pfFastLinkPDB +); +``` + +#### Parameters + + `pfFastLinkPDB` + +[out] Returns a boolean indcating if the debug information was build with `/DEBUG:fastlink` or not. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## Remarks + +If debug information was compiled with `/DEBUG:fastlink` then not all of the inforation is contained within the `.PDB` and in order fo the debugger to fully work, it must access the debug inforation contained within oms of the intermediate build files (like `.OBJ`, `.LIB`, and `.PCH` files). Fastlink PDBs are no longer recommended. + +## See also + +- [/DEBUG (Generate debug info)](/cpp/build/reference/debug-generate-debug-info) +- [`IDiaSessionEx`](../../debugger/debug-interface-access/idiasessionex.md) diff --git a/docs/debugger/debug-interface-access/idiasessionex-isportablepdb.md b/docs/debugger/debug-interface-access/idiasessionex-isportablepdb.md new file mode 100644 index 00000000000..df14f854658 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasessionex-isportablepdb.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves a boolean indicating that the source debug information is using the Portable PDB format." +title: "IDiaSessionEx::isPortablePDB" +ms.date: "07/05/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSessionEx::isPortablePDB method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSessionEx::isPortablePDB + +Retrieves a boolean indicating that the source debug information is using the [Portable PDB](https://github.com/dotnet/runtime/blob/main/docs/design/specs/PortablePdb-Metadata.md) format. + +## Syntax + +```C++ +HRESULT isPortablePDB( + BOOL* pfPortablePDB +); +``` + +#### Parameters + + `pfPortablePDB` + +[out] Returns a boolean indcating if the debug information was in the [Portable PDB](https://github.com/dotnet/runtime/blob/main/docs/design/specs/PortablePdb-Metadata.md) format. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## Remarks + +The DIA SDK internally converts portable PDBs into classic windows PDBs in memory when opening them. This can incur extra time and memory usage when the PDB is opened. The file on disk is unmodified. + +## See also + +- [`IDiaSessionEx`](../../debugger/debug-interface-access/idiasessionex.md) +- [Portable PDB v1.0 Format Specification](https://github.com/dotnet/runtime/blob/main/docs/design/specs/PortablePdb-Metadata.md) \ No newline at end of file diff --git a/docs/debugger/debug-interface-access/idiasessionex.md b/docs/debugger/debug-interface-access/idiasessionex.md new file mode 100644 index 00000000000..53290379097 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasessionex.md @@ -0,0 +1,99 @@ +--- +description: "Provides an extended query context for debug symbols." +title: "IDiaSessionEx" +ms.date: "07/05/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSessionEx interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSessionEx + +Provides an extended query context for debug symbols. + +## Syntax + +``` +IDiaSessionEx : IDiaSession +``` + +## Methods +The following table shows the methods of `IDiaSessionEx`. + +|Method|Description| +|------------|-----------------| +|[`IDiaSessionEx::isFastLinkPDB`](../../debugger/debug-interface-access/idiasessionex-isfastlinkpdb.md)|Retrieves a boolean indicating that the source debug information was produced with `/DEBUG:fastlink`.| +|[`IDiaSessionEx::isPortablePDB`](../../debugger/debug-interface-access/idiasessionex-isportablepdb.md)|Retrieves a boolean indicating that the source debug information is using the [Portable PDB format](https://github.com/dotnet/runtime/blob/main/docs/design/specs/PortablePdb-Metadata.md).| +|[`IDiaSessionEx::getSourceLinkInfo'](../../debugger/debug-interface-access/idiasessionex-getsourcelinkinfo.md)|Retrieves an enumeration of source link information.| + +## Remarks + +It is important to call the [`IDiaSession::put_loadAddress`](../../debugger/debug-interface-access/idiasession-put-loadaddress.md) method after creating the `IDiaSession` object — and the value passed to the `put_loadAddress` method must be non-zero — for any virtual address (VA) properties of symbols to be accessible. The load address comes from whatever program loaded the executable being debugged. For example, you can call the Win32 function `GetModuleInformation` to retrieve the load address for the executable, given a handle to the executable. + +Because `IDiaSessionEx` inherits from `IDiaSession`, it alos has all the same methods, and can be passed to any function that accepts an `IDiaSession`. + +## Example + +This example shows how to obtain the `IDiaSessionEx` interface as part of a general initialization of the DIA SDK. + +```C++ +CComPtr pSource; +ComPtr psessionex; + +void InitializeDIA(const char *szFilename) +{ + HRESULT hr = CoCreateInstance( CLSID_DiaSource, + NULL, + CLSCTX_INPROC_SERVER, + __uuidof( IDiaDataSource ), + (void **) &pSource); + if (FAILED(hr)) + { + Fatal("Could not CoCreate CLSID_DiaSource. Register msdia140.dll." ); + } + wchar_t wszFilename[ _MAX_PATH ]; + mbstowcs( wszFilename, + szFilename, + sizeof( wszFilename )/sizeof( wszFilename[0] ) ); + if ( FAILED( pSource->loadDataFromPdb( wszFilename ) ) ) + { + if ( FAILED( pSource->loadDataForExe( wszFilename, NULL, NULL ) ) ) + { + Fatal( "loadDataFromPdb/Exe" ); + } + } + + ComPtr psession; + if ( FAILED( pSource->openSession( &psession ) ) ) + { + Fatal( "openSession" ); + } + + if ( FAILED( psession.QueryInterface(&psessionex) ) ) + { + Fatal( "Failed to upgrade from IDiaSession to IDiaSessionEx, are you using an older version of msdia140.dll?" ); + } +} +``` + +## Requirements + +Header: Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [Overview](../../debugger/debug-interface-access/overview-debug-interface-access-sdk.md) +- [Exe](../../debugger/debug-interface-access/exe.md) +- [`IDiaAddressMap`](../../debugger/debug-interface-access/idiaaddressmap.md) +- [`IDiaDataSource`](../../debugger/debug-interface-access/idiadatasource.md) +- [`IDiaDataSource::openSession`](../../debugger/debug-interface-access/idiadatasource-opensession.md) +- [Querying the .Pdb File](../../debugger/debug-interface-access/querying-the-dot-pdb-file.md) diff --git a/docs/debugger/debug-interface-access/idiasourcefile-get-checksum.md b/docs/debugger/debug-interface-access/idiasourcefile-get-checksum.md index 598dfd2836a..dc6de5a7d5e 100644 --- a/docs/debugger/debug-interface-access/idiasourcefile-get-checksum.md +++ b/docs/debugger/debug-interface-access/idiasourcefile-get-checksum.md @@ -1,7 +1,7 @@ --- description: "Retrieves the checksum bytes." title: "IDiaSourceFile::get_checksum" -ms.date: "11/04/2016" +ms.date: "07/18/2024" ms.topic: "reference" dev_langs: - "C++" @@ -12,7 +12,7 @@ ms.author: "mikejo" manager: mijacobs ms.subservice: debug-diagnostics --- -# IDiaSourceFile::get_checksum +# `IDiaSourceFile::get_checksum` Retrieves the checksum bytes. @@ -27,6 +27,7 @@ HRESULT get_checksum (  ``` #### Parameters + `cbData` [in] Size of the data buffer, in bytes. @@ -40,9 +41,11 @@ HRESULT get_checksum (  [in, out] A buffer that is filled with the checksum bytes. If this parameter is `NULL`, then `pcbData` returns the number of bytes required. ## Return Value + If successful, returns `S_OK`; otherwise, returns an error code. ## Remarks + To determine the type of checksum algorithm that was used to generate the checksum bytes, call the [IDiaSourceFile::get_checksumType](../../debugger/debug-interface-access/idiasourcefile-get-checksumtype.md) method. The checksum is typically generated from the image of the source file so changes in the source file are reflected in changes in the checksum bytes. If the checksum bytes do not match a checksum generated from the loaded image of the file, then the file should be considered damaged or tampered with. @@ -50,5 +53,6 @@ HRESULT get_checksum (  Typical checksums are never more than 32 bytes in size but do not assume that is the maximum size of a checksum. Set the `data` parameter to `NULL` to get the number of bytes required to retrieve the checksum. Then allocate a buffer of the appropriate size and call this method once more with the new buffer. ## See also -- [IDiaSourceFile](../../debugger/debug-interface-access/idiasourcefile.md) -- [IDiaSourceFile::get_checksumType](../../debugger/debug-interface-access/idiasourcefile-get-checksumtype.md) + +- [`IDiaSourceFile`](../../debugger/debug-interface-access/idiasourcefile.md) +- [`IDiaSourceFile::get_checksumType`](../../debugger/debug-interface-access/idiasourcefile-get-checksumtype.md) diff --git a/docs/debugger/debug-interface-access/idiasourcefile-get-checksumtype.md b/docs/debugger/debug-interface-access/idiasourcefile-get-checksumtype.md index 24a99f747e6..34554a13e1f 100644 --- a/docs/debugger/debug-interface-access/idiasourcefile-get-checksumtype.md +++ b/docs/debugger/debug-interface-access/idiasourcefile-get-checksumtype.md @@ -1,7 +1,7 @@ --- description: "Retrieves the checksum type." title: "IDiaSourceFile::get_checksumType" -ms.date: "11/04/2016" +ms.date: "07/18/2024" ms.topic: "reference" dev_langs: - "C++" @@ -12,7 +12,7 @@ ms.author: "mikejo" manager: mijacobs ms.subservice: debug-diagnostics --- -# IDiaSourceFile::get_checksumType +# `IDiaSourceFile::get_checksumType` Retrieves the checksum type. @@ -25,26 +25,21 @@ HRESULT get_checksumType (  ``` #### Parameters + `pRetVal` -[out] Returns the checksum type. +[out] Returns the checksum type as a value from [`CV_SourceChksum_t`](../../debugger/debug-interface-access/cv-sourcechksum-t.md). ## Return Value + If successful, returns `S_OK`; otherwise, returns an error code. ## Remarks - The checksum type is a value that can be mapped to a checksum algorithm. For example, the standard PDB file format can typically have one of the following values: - -|Checksum Type|CryptoAPI Label|Description| -|-------------------|---------------------|-----------------| -|0|\|No checksum present.| -|1|`CALG_MD5`|checksum generated with the MD5 hashing algorithm.| -|2|`CALG_SHA1`|checksum generated with the SHA1 hashing algorithm.| - - The `CryptoAPI` labels are from the `ALG_ID` enumeration. For more information on hashing algorithms, consult the `CryptoAPI` section of the Microsoft Windows SDK. To obtain the actual checksum bytes for the source file, call the [IDiaSourceFile::get_checksum](../../debugger/debug-interface-access/idiasourcefile-get-checksum.md) method. ## See also -- [IDiaSourceFile](../../debugger/debug-interface-access/idiasourcefile.md) -- [IDiaSourceFile::get_checksum](../../debugger/debug-interface-access/idiasourcefile-get-checksum.md) + +- [`IDiaSourceFile`](../../debugger/debug-interface-access/idiasourcefile.md) +- [`IDiaSourceFile::get_checksum`](../../debugger/debug-interface-access/idiasourcefile-get-checksum.md) +- [`CV_SourceChksum_t`](../../debugger/debug-interface-access/cv-sourcechksum-t.md) diff --git a/docs/debugger/debug-interface-access/idiastackwalkhelper2-getpointerauthenticationmask.md b/docs/debugger/debug-interface-access/idiastackwalkhelper2-getpointerauthenticationmask.md new file mode 100644 index 00000000000..9d326ad75b5 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiastackwalkhelper2-getpointerauthenticationmask.md @@ -0,0 +1,49 @@ +--- +description: "Retrieves the value of the pointer authentication mask." +title: "IDiaStackWalkHelper2::GetPointerAuthenticationMask" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaStackWalkHelper2::GetPointerAuthenticationMask method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaStackWalkHelper2::GetPointerAuthenticationMask + +Retrieves the value of the pointer authentication mask. + +## Syntax + +```C++ +HRESULT GetPointerAuthenticationMask (  + ULONG64 PtrVal, + ULONG64* AuthMask +); +``` + +#### Parameters + + `PtrVal` + +[in] The pointer from the stack to be decoded. + + `AuthMask` + +[out] Returns the value of the authentication mask. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +## Remarks + + Currently only the ARM64 hardware and OS support pointer authentication, so this callback is only ever called when walking ARM64 stacks. If `AuthMask` has all the bits set (`0xFFFFFFFFFFFFFFFFull`), then it means that the target stack shares the same pointer authentication as the current process, and thus DIA should use the OS APIs to decode the pointer. Conversely if `AuthMask` has no bits set it means that pointer authentication is not in use or enabled and thus the pointer does not need to be decoded. Otherwise the `AuthMask` should have 1 bit set for every part of the pointer that is part of the pointer authentication, and 0 for the base parts of the pointer. + +## See also + +- [`IDiaStackWalkHelper2`](../../debugger/debug-interface-access/idiastackwalkhelper2.md) +- [`IDiaSymbol7::get_isSignRet`](../../debugger/debug-interface-access/idiasymbol7-get-issignret.md) diff --git a/docs/debugger/debug-interface-access/idiastackwalkhelper2.md b/docs/debugger/debug-interface-access/idiastackwalkhelper2.md new file mode 100644 index 00000000000..9eaa1189729 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiastackwalkhelper2.md @@ -0,0 +1,54 @@ +--- +description: "Facilitates walking the stack using the program debug database (.pdb) file. Extends IDiaStackWalkHelper." +title: "IDiaStackWalkHelper2" +ms.date: "07/18/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaStackWalkHelper2 interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaStackWalkHelper2 + +Facilitates walking the stack using the program debug database (.pdb) file. + +## Syntax + +``` +IDiaStackWalkHelper2: IDiaStackWalkHelper +``` + +## Methods in VTable Order + + The table below shows the methods of `IDiaStackWalkHelper2`: + +|Method|Description| +|------------|-----------------| +|[`IDiaStackWalkHelper2::GetPointerAuthenticationMask`](../../debugger/debug-interface-access/idiastackwalkhelper2-getpointerauthenticationmask.md)|Retrieves the value of the pointer authentication mask.| + +## Remarks + + This interface is called by the DIA code to obtain information about the executable to construct a list of stack frames during program execution. + +## Notes for Callers + + A client application implements this interface to support walking the stack during program execution. An instance of this interface is passed to the [`IDiaStackWalker::getEnumFrames`](../../debugger/debug-interface-access/idiastackwalker-getenumframes.md) or [`IDiaStackWalker::getEnumFrames2`](../../debugger/debug-interface-access/idiastackwalker-getenumframes2.md) methods. + +## Requirements + + Header: Dia2.h + + Library: diaguids.lib + + DLL: msdia140.dll + +## See also +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [`IDiaFrameData`](../../debugger/debug-interface-access/idiaframedata.md) +- [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md) +- [`IDiaStackWalker::getEnumFrames`](../../debugger/debug-interface-access/idiastackwalker-getenumframes.md) +- [`IDiaStackWalker::getEnumFrames2`](../../debugger/debug-interface-access/idiastackwalker-getenumframes2.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-findinputassemblyfile.md b/docs/debugger/debug-interface-access/idiasymbol-findinputassemblyfile.md new file mode 100644 index 00000000000..210c0f3f85a --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-findinputassemblyfile.md @@ -0,0 +1,42 @@ +--- +description: "Retrieves the .NET Native input assembly file that is the parent of the symbol." +title: "IDiaSymbol::findInputAssemblyFile" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::findInputAssemblyFile method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::findInputAssemblyFile + +Retrieves the .NET Native input assembly file that is the parent of the symbol. + +## Syntax + +```C++ +HRESULT findInputAssemblyFile( + [out] IDiaInputAssemblyFile** ppResult); +``` + +#### Parameters + + `ppResult` + +[out] Returns the [IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md). + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the symbol did not come from a .NET native input assembly. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-backendqfe.md b/docs/debugger/debug-interface-access/idiasymbol-get-backendqfe.md new file mode 100644 index 00000000000..1874267a8f1 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-backendqfe.md @@ -0,0 +1,54 @@ +--- +description: "Retrieves the back end QFE number of the compiler." +title: "IDiaSymbol::get_backEndQFE" +ms.date: "07/05/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_backEndQFE method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_backEndQFE + +Retrieves the back end QFE number of the compiler. + +## Syntax + +```C++ +HRESULT get_backEndQFE (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the back end QFE number. See Remarks. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Remarks + + A compiler is typically composed of two primary elements: the front end (the parser), which handles parsing the source code into an intermediate form, and a back end (code generator), which converts the intermediate form into assembly. It is not uncommon for the front end to have a different version than the back end. + + A front end or back end version number is composed of three parts: \.\.\.\, where \ is the major version number, \ is the minor version number, \ is the build number, and \ if the quick-fix engineering (QFE) number. For example, 19.40.33731.1. + +## Requirements + +|Requirement|Description| +|-----------------|-----------------| +|Header:|dia2.h| +|Version:|DIA SDK v14.0| + +## See also +- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-bindid.md b/docs/debugger/debug-interface-access/idiasymbol-get-bindid.md new file mode 100644 index 00000000000..7f39e897325 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-bindid.md @@ -0,0 +1,41 @@ +--- +description: "Retrieves the binding register index." +title: "IDiaSymbol::get_binID" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_bindID method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_bindID + +Retrieves the binding register index. + +## Syntax + +```C++ +HRESULT get_backEndQFE (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the binding register index. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-bindslot.md b/docs/debugger/debug-interface-access/idiasymbol-get-bindslot.md new file mode 100644 index 00000000000..d9d65c4c6af --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-bindslot.md @@ -0,0 +1,42 @@ +--- +description: "Retrieves the lower bound in binding space." +title: "IDiaSymbol::get_bindSlot" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_bindSlot method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_bindSlot + +Retrieves the lower bound in binding space. + +## Syntax + +```C++ +HRESULT get_bindSlot ( + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the lower bound in binding space. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-bindspace.md b/docs/debugger/debug-interface-access/idiasymbol-get-bindspace.md new file mode 100644 index 00000000000..d1871c2227d --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-bindspace.md @@ -0,0 +1,42 @@ +--- +description: "Retrieves the binding space." +title: "IDiaSymbol::get_bindSpace" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_bindSpace method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_bindSpace + +Retrives the binding space. + +## Syntax + +```C++ +HRESULT get_bindSpace ( + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the binding space. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-builtinkind.md b/docs/debugger/debug-interface-access/idiasymbol-get-builtinkind.md index ba55ff4c76b..2f5fda35c8e 100644 --- a/docs/debugger/debug-interface-access/idiasymbol-get-builtinkind.md +++ b/docs/debugger/debug-interface-access/idiasymbol-get-builtinkind.md @@ -1,7 +1,7 @@ --- description: "Retrieves a built-in kind of the HLSL type." title: "IDiaSymbol::get_builtInKind" -ms.date: "11/04/2016" +ms.date: "07/18/2024" ms.topic: "reference" dev_langs: - "C++" @@ -10,7 +10,7 @@ ms.author: "mikejo" manager: mijacobs ms.subservice: debug-diagnostics --- -# IDiaSymbol::get_builtInKind +# `IDiaSymbol::get_builtInKind` Retrieves a built-in kind of the HLSL type. @@ -22,12 +22,21 @@ HRESULT get_buildInKind( ``` #### Parameters + `pRetVal` [out] A pointer to a `DWORD` that holds a built-in kind of the HLSL type. ## Return Value + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +## Remarks + +> [!NOTE] +> The newer DXC compiler no longer produces PDBs. This API only has valid values on PDBs produced by the older *fxc.exe* compiler. ## See also -- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`CV_builtin_e`](../../debugger/debug-interface-access/cv-builtin-e.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-characteristics.md b/docs/debugger/debug-interface-access/idiasymbol-get-characteristics.md new file mode 100644 index 00000000000..46ea69479dd --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-characteristics.md @@ -0,0 +1,47 @@ +--- +description: "Retrieves the characteristics of this COFF section." +title: "IDiaSymbol::get_characteristics" +ms.date: "07/11/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_characteristics method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_characteristics + +Retrieves the characteristics of this COFF section. + +## Syntax + +```C++ +HRESULT get_characteristics (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the characteristics of this COFF section. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Remarks + +The `DWORD` can contain values defined in `winnt.h` such as `IMAGE_SCN_CNT_INITIALIZED_DATA` or `IMAGE_SCN_MEM_READ` bitwise or'ed together. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +-[IMAGE_SECTION_HEADER structure (winnt.h)](/windows/win32/api/winnt/ns-winnt-image_section_header) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-coffgroup.md b/docs/debugger/debug-interface-access/idiasymbol-get-coffgroup.md new file mode 100644 index 00000000000..4084063e27e --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-coffgroup.md @@ -0,0 +1,42 @@ +--- +description: "Retrieves the COFF group symbol this symbol comes from." +title: "IDiaSymbol::get_coffGroup" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_coffGroup method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_coffGroup + +Retrieves the COFF group symbol this symbol comes from. + +## Syntax + +```C++ +HRESULT get_coffGroup (  + IDiaSymbol** pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the `IDiaSymbol*` that represents the the COFF group that this symbols comes from. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-constantexport.md b/docs/debugger/debug-interface-access/idiasymbol-get-constantexport.md new file mode 100644 index 00000000000..5372c240a36 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-constantexport.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag indicating whether this export is CONSTANT." +title: "IDiaSymbol::get_constantExport" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_constantExport method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_constantExport + +Retrieves a flag indicating whether this export is `CONSTANT`. + +## Syntax + +```C++ +HRESULT get_contantExport (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if the export symbol is marked as `CONSTANT`; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`EXPORTS`](/cpp/build/reference/exports) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-dataexport.md b/docs/debugger/debug-interface-access/idiasymbol-get-dataexport.md new file mode 100644 index 00000000000..4070ec22f2e --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-dataexport.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag indicating whether this export is DATA." +title: "IDiaSymbol::get_dataExport" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_dataExport method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_dataExport + +Retrieves a flag indicating whether this export is `DATA`. + +## Syntax + +```C++ +HRESULT get_privateExport (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if the export symbol is marked as `DATA`; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`EXPORTS`](/cpp/build/reference/exports) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-exceptionhandleraddressoffset.md b/docs/debugger/debug-interface-access/idiasymbol-get-exceptionhandleraddressoffset.md new file mode 100644 index 00000000000..3401bc7ed0f --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-exceptionhandleraddressoffset.md @@ -0,0 +1,46 @@ +--- +description: "Retrieves the section offset of the exception handler of this function." +title: "IDiaSymbol::get_exceptionHandlerAddressOffset" +ms.date: "07/11/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_exceptionHandlerAddressOffset method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_exceptionHandlerAddressOffset + +Retrieves the section offset of the exception handler of this function. + +## Syntax + +```C++ +HRESULT get_exceptionHandlerAddressOffset (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the section offset of this function's exception handler. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Remarks + +For machines that do not use `.pdata` and `.xdata` for exception and unwind information (currently only x86), this method can be used to retrieve the address of the per-function exception inforation. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-exceptionhandleraddresssection.md b/docs/debugger/debug-interface-access/idiasymbol-get-exceptionhandleraddresssection.md new file mode 100644 index 00000000000..0f28f7e6ec6 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-exceptionhandleraddresssection.md @@ -0,0 +1,46 @@ +--- +description: "Retrieves the section number of the exception handler of this function." +title: "IDiaSymbol::get_exceptionHandlerAddressSection" +ms.date: "07/11/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_exceptionHandlerAddressSection method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_exceptionHandlerAddressSection + +Retrieves the section number of the exception handler of this function. + +## Syntax + +```C++ +HRESULT get_exceptionHandlerAddressSection (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the section number of this function's exception handler. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Remarks + +For machines that do not use `.pdata` and `.xdata` for exception and unwind information (currently only x86), this method can be used to retrieve the address of the per-function exception inforation. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-exceptionhandlerrelativevirtualaddress.md b/docs/debugger/debug-interface-access/idiasymbol-get-exceptionhandlerrelativevirtualaddress.md new file mode 100644 index 00000000000..4f20f0bdd1b --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-exceptionhandlerrelativevirtualaddress.md @@ -0,0 +1,46 @@ +--- +description: "Retrieves the relative virtual address (RVA) of the exception handler of this function." +title: "IDiaSymbol::get_exceptionHandlerRelativeVirtualAddress" +ms.date: "07/11/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_exceptionHandlerRelativeVirtualAddress method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_exceptionHandlerRelativeVirtualAddress + +Retrieves the relative virtual address (RVA) of the exception handler of this function. + +## Syntax + +```C++ +HRESULT get_exceptionHandlerRelativeVirtualAddress (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the relative virtual address (RVA) of this function's exception handler. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Remarks + +For machines that do not use `.pdata` and `.xdata` for exception and unwind information (currently only x86), this method can be used to retrieve the address of the per-function exception inforation. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-exceptionhandlervirtualaddress.md b/docs/debugger/debug-interface-access/idiasymbol-get-exceptionhandlervirtualaddress.md new file mode 100644 index 00000000000..fbcdcc84dd2 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-exceptionhandlervirtualaddress.md @@ -0,0 +1,46 @@ +--- +description: "Retrieves the virtual address of the exception handler of this function." +title: "IDiaSymbol::get_exceptionHandlerVirtualAddress" +ms.date: "07/11/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_exceptionHandlerVirtualAddress method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_exceptionHandlerVirtualAddress + +Retrieves the virtual address of the exception handler of this function. + +## Syntax + +```C++ +HRESULT get_exceptionHandlerVirtualAddress (  + ULONGLONG* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the virtual address of this function's exception handler. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Remarks + +For machines that do not use `.pdata` and `.xdata` for exception and unwind information (currently only x86), this method can be used to retrieve the address of the per-function exception inforation. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-exporthasexplicitlyassignedordinal.md b/docs/debugger/debug-interface-access/idiasymbol-get-exporthasexplicitlyassignedordinal.md new file mode 100644 index 00000000000..99773542e6d --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-exporthasexplicitlyassignedordinal.md @@ -0,0 +1,47 @@ +--- +description: "Retrieves a flag indicating whether this export has an explicitly assigned ordinal." +title: "IDiaSymbol::get_exportHasExplicitlyAssignedOrdinal" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_exportHasExplicitlyAssignedOrdinal method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_exportHasExplicitlyAssignedOrdinal + +Retrieves a flag indicating whether this export has an explicitly assigned ordinal. + +## Syntax + +```C++ +HRESULT get_exportHasExplicitlyAssignedOrdinal( + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if the export symbol is marked has an explicitly assigned ordinal; otherwise, returns `FALSE`. See remarks. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Remarks + +All exports have an ordinal. Use this method to determine if the ordinal is implicitly defined by the linker, or if it was explicitly defined by the user using the `@ordinal` syntax. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`EXPORTS`](/cpp/build/reference/exports) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-exportisforwarder.md b/docs/debugger/debug-interface-access/idiasymbol-get-exportisforwarder.md new file mode 100644 index 00000000000..32bdc13ae39 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-exportisforwarder.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag indicating whether this export is a forwarder." +title: "IDiaSymbol::get_exportIsForwarder" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_exportIsForwarder method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_exportIsForwarder + +Retrieves a flag indicating whether this export is a forwarder. + +## Syntax + +```C++ +HRESULT get_exportIsForwarder (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if the export symbol is forwarded to another export in another module; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`EXPORTS`](/cpp/build/reference/exports) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-finallivestaticsize.md b/docs/debugger/debug-interface-access/idiasymbol-get-finallivestaticsize.md new file mode 100644 index 00000000000..6c7f3e41daf --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-finallivestaticsize.md @@ -0,0 +1,49 @@ +--- +description: "Retrieves the final static size of live function, after inlining." +title: "IDiaSymbol::get_finalLiveStaticSize" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_finalLiveStaticSize method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_finalLiveStaticSize + +Retrieves the final static size of live function, after inlining. + +## Syntax + +```C++ +HRESULT get_finalLiveStaticSize (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the count of live instructions in the function. See remarks. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Remarks + +This is the number of live instructions in the function. For the training profile in use, only instructions that are executed at least once are counted as live. To get the total size of the function, including dead instructions (i.e. instructions never executed by the training data), use [`IDiaSymbol::get_staticSize`](../../debugger/debug-interface-access/idiasymbol-get-staticsize.md). To get the number of instructions executed in this function use [`IDiaSymbol::get_PGODynamicInstructionCount`](../../debugger/debug-interface-access/idiasymbol-get-pgodynamicinstructioncount.md). + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol::get_staticSize`](../../debugger/debug-interface-access/idiasymbol-get-staticsize.md) +- [`IDiaSymbol::get_PGODynamicInstructionCount`](../../debugger/debug-interface-access/idiasymbol-get-pgodynamicinstructioncount.md) +- [Profile-guided optimizations](/cpp/build/profile-guided-optimizations) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-framesize.md b/docs/debugger/debug-interface-access/idiasymbol-get-framesize.md new file mode 100644 index 00000000000..ccf5074fa8d --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-framesize.md @@ -0,0 +1,42 @@ +--- +description: "Retrieves the frame size." +title: "IDiaSymbol::get_frameSize" +ms.date: "07/11/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_frameSize method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_frameSize + +Retrieves the frame size. + +## Syntax + +```C++ +HRESULT get_frameSize (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the total size, in bytes, of the functions fixed stacke frame allocation. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-frontendqfe.md b/docs/debugger/debug-interface-access/idiasymbol-get-frontendqfe.md new file mode 100644 index 00000000000..164aa370687 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-frontendqfe.md @@ -0,0 +1,54 @@ +--- +description: "Retrieves the front end QFE number of the compiler." +title: "IDiaSymbol::get_frontEndQFE" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_frontEndQFE method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_frontEndQFE + +Retrieves the front end QFE number of the compiler. + +## Syntax + +```C++ +HRESULT get_frontEndQFE (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the front end QFE number. See Remarks. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Remarks + + A compiler is typically composed of two primary elements: the front end (the parser), which handles parsing the source code into an intermediate form, and a back end (code generator), which converts the intermediate form into assembly. It is not uncommon for the front end to have a different version than the back end. + + A front end or back end version number is composed of three parts: \.\.\.\, where \ is the major version number, \ is the minor version number, \ is the build number, and \ if the quick-fix engineering (QFE) number. For example, 19.40.33731.1. + +## Requirements + +|Requirement|Description| +|-----------------|-----------------| +|Header:|dia2.h| +|Version:|DIA SDK v14.0| + +## See also +- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-hascontrolflowcheck.md b/docs/debugger/debug-interface-access/idiasymbol-get-hascontrolflowcheck.md new file mode 100644 index 00000000000..95d118dbefd --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-hascontrolflowcheck.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag indicating whether this function contains control flow checks." +title: "IDiaSymbol::get_get_hasControlFlowCheck" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_get_hasControlFlowCheck method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_get_hasControlFlowCheck + +Retrieves a flag indicating whether this function contains control flow checks. + +## Syntax + +```C++ +HRESULT get_get_hasControlFlowCheck (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if this function was compiled with `/guard:cf`; otherwase, returns `FALSE'. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`/guard` (Enable Control Flow Guard)](/cpp/build/reference/guard-enable-control-flow-guard) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-hasvalidpgocounts.md b/docs/debugger/debug-interface-access/idiasymbol-get-hasvalidpgocounts.md new file mode 100644 index 00000000000..a4e44ede3c3 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-hasvalidpgocounts.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag indicating whether this symbols has valid profile-guided optimizations (PGO) counts." +title: "IDiaSymbol::get_hasValidPGOCounts" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_hasValidPGOCounts method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_hasValidPGOCounts + +Retrieves a flag indicating whether this symbols has valid profile-guided optimizations (PGO) counts. + +## Syntax + +```C++ +HRESULT get_isget_hasValidPGOCountsPGO (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if this function has valid profile-guided optimization counts from a training scenario; otheriwse, `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [Profile-guided optimizations](/cpp/build/profile-guided-optimizations) \ No newline at end of file diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-isconstructorvirtualbase.md b/docs/debugger/debug-interface-access/idiasymbol-get-isconstructorvirtualbase.md new file mode 100644 index 00000000000..a77e4c256b5 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-isconstructorvirtualbase.md @@ -0,0 +1,42 @@ +--- +description: "Retrieves a flag indicating whether this is an instance constructor of a class with virtual base." +title: "IDiaSymbol::get_isConstructorVirtualBase" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_isConstructorVirtualBase method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_isConstructorVirtualBase + +Retrieves a flag indicating whether this is an instance constructor of a class with virtual base. + +## Syntax + +```C++ +HRESULT get_isConstructorVirtualBase (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if This constructor has a hidden param to control initialization of virtual bases; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-iscxxreturnudt.md b/docs/debugger/debug-interface-access/idiasymbol-get-iscxxreturnudt.md new file mode 100644 index 00000000000..33b89736a25 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-iscxxreturnudt.md @@ -0,0 +1,41 @@ +--- +description: "Retrieves a flag indicating whether return C++ style UDT." +title: "IDiaSymbol::get_isCxxReturnUdt" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_isCxxReturnUdt method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_isCxxReturnUdt + +Retrieves a flag indicating whether return C++ style UDT. + +## Syntax + +```C++ +HRESULT get_isCxxReturnUdt (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if the function's return parameter is using C++ semmantics where the caller must pass a buffer for the UDT to be constructed in-place; otherwise returns `FALSE` when the function return is using C-semmantics (return-by-value). + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also +- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-ishlsldata.md b/docs/debugger/debug-interface-access/idiasymbol-get-ishlsldata.md index 3f781861b25..7c988302189 100644 --- a/docs/debugger/debug-interface-access/idiasymbol-get-ishlsldata.md +++ b/docs/debugger/debug-interface-access/idiasymbol-get-ishlsldata.md @@ -29,5 +29,10 @@ HRESULT get_isHLSLData( ## Return Value If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. +## Remarks + +> [!NOTE] +> The newer DXC compiler no longer produces PDBs. This API only has valid values on PDBs produced by the older *fxc.exe* compiler. + ## See also - [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-isinterfaceudt.md b/docs/debugger/debug-interface-access/idiasymbol-get-isinterfaceudt.md new file mode 100644 index 00000000000..4da30dad60d --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-isinterfaceudt.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves a flag indicating whether this is a WinRT interface user-defined type (UDT)." +title: "IDiaSymbol::get_isInterfaceUdt" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_isInterfaceUdt method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_isInterfaceUdt + +Retrieves a flag indicating whether this is a WinRT interface user-defined type (UDT). + +## Syntax + +```C++ +HRESULT get_isInterfaceUdt (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if this symbol is a WinRT interface class/struct; otherwise, `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol::get_isRefUdt`](../../debugger/debug-interface-access/idiasymbol-get-isrefudt.md) +- [`IDiaSymbol::get_isValueUdt`](../../debugger/debug-interface-access/idiasymbol-get-isvalueudt.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-islocationcontrolflowdependent.md b/docs/debugger/debug-interface-access/idiasymbol-get-islocationcontrolflowdependent.md new file mode 100644 index 00000000000..aa3d0eefaff --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-islocationcontrolflowdependent.md @@ -0,0 +1,41 @@ +--- +description: "Retrieves a flag indicating whether a local symbol's location liveness is dependent upon the control flow of the function." +title: "IDiaSymbol::get_isLocationControlFlowDependent" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_isLocationControlFlowDependent method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_isLocationControlFlowDependent + +Retrieves a flag indicating whether a local symbol's location liveness is dependent upon the control flow of the function. + +## Syntax + +```C++ +HRESULT get_isLocationControlFlowDependent (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if the current symbol location is only live or valid depending upon the control flow followed to reach this address; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also +- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-isoptimizedforspeed.md b/docs/debugger/debug-interface-access/idiasymbol-get-isoptimizedforspeed.md new file mode 100644 index 00000000000..734cb76d615 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-isoptimizedforspeed.md @@ -0,0 +1,36 @@ +--- +description: "Retrieves a flag indicating whether the function is optimized for speed." +title: "IDiaSymbol::get_isOptimizedForSpeed" +ms.date: "07/26/2024" +ms.topic: "reference" +dev_langs: + - "C++" +author: "mikejo5000" +ms.author: "mikejo" +manager: mijacobs +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_isOptimizedForSpeed + +Retrieves a flag indicating whether the function is optimized for speed. + +## Syntax + +```C++ +HRESULT get_isOptimizedForSpeed( + BOOL* pRetVal); +``` + +#### Parameters + `pRetVal` + +[out] A pointer to a `BOOL` that specifies whether the function is optimized for speed. `TRUE` would indicate that the function was compiled with `/Ot` telling the compiler to favor fast code (speed). + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`/Os`, `/Ot` (Favor Small Code, Favor Fast Code)](/cpp/build/reference/os-ot-favor-small-code-favor-fast-code) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-ispgo.md b/docs/debugger/debug-interface-access/idiasymbol-get-ispgo.md new file mode 100644 index 00000000000..b4f5875cf69 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-ispgo.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag indicating whether profile-guided optimizations (PGO) were performed for this function." +title: "IDiaSymbol::get_isPGO" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_isPGO method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_isPGO + +Retrieves a flag indicating whether profile-guided optimizations (PGO) were performed for this function. + +## Syntax + +```C++ +HRESULT get_isPGO (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if profile-guided optimizations were performed for this function; otheriwse, `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [Profile-guided optimizations](/cpp/build/profile-guided-optimizations) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-isrefudt.md b/docs/debugger/debug-interface-access/idiasymbol-get-isrefudt.md new file mode 100644 index 00000000000..22d76f6064d --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-isrefudt.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves a flag indicating whether this is a WinRT reference user-defined type (UDT)." +title: "IDiaSymbol::get_isRefUdt" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_isRefUdt method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_isRefUdt + +Retrieves a flag indicating whether this is a WinRT reference user-defined type (UDT). + +## Syntax + +```C++ +HRESULT get_isRefUdt (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if this symbol is a WinRT reference class/struct; otherwise, `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol::get_isInterfaceUdt`](../../debugger/debug-interface-access/idiasymbol-get-isinterfaceudt.md) +- [`IDiaSymbol::get_isValueUdt`](../../debugger/debug-interface-access/idiasymbol-get-isvalueudt.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-issafebuffers.md b/docs/debugger/debug-interface-access/idiasymbol-get-issafebuffers.md index 51d9fd97718..e6e58032f42 100644 --- a/docs/debugger/debug-interface-access/idiasymbol-get-issafebuffers.md +++ b/docs/debugger/debug-interface-access/idiasymbol-get-issafebuffers.md @@ -1,7 +1,7 @@ --- description: "Retrieves a flag that specifies whether the preprocesser directive for a safe buffer is used." title: "IDiaSymbol::get_isSafeBuffers" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -46,4 +46,5 @@ HRESULT get_isSafeBuffers(  ## See also - [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) -- [strict_gs_check](/cpp/preprocessor/strict-gs-check) +- [`safebuffers`](/cpp/cpp/safebuffers) +- [`strict_gs_check` pragma](/cpp/preprocessor/strict-gs-check) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-isvalueudt.md b/docs/debugger/debug-interface-access/idiasymbol-get-isvalueudt.md new file mode 100644 index 00000000000..3816c1ea988 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-isvalueudt.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves a flag indicating whether this is a WinRT value user-defined type (UDT)." +title: "IDiaSymbol::get_isValueUdt" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_isValueUdt method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_isValueUdt + +Retrieves a flag indicating whether this is a WinRT value user-defined type (UDT). + +## Syntax + +```C++ +HRESULT get_isValueUdt (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if this symbol is a WinRT value class/struct; otherwise, `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol::get_isInterfaceUdt`](../../debugger/debug-interface-access/idiasymbol-get-isinterfaceudt.md) +- [`IDiaSymbol::get_isRefUdt`](../../debugger/debug-interface-access/idiasymbol-get-isrefudt.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-iswinrtpointer.md b/docs/debugger/debug-interface-access/idiasymbol-get-iswinrtpointer.md new file mode 100644 index 00000000000..19b9705a9bc --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-iswinrtpointer.md @@ -0,0 +1,41 @@ +--- +description: "Retrieves a flag indicating whether this is a WinRT pointer type." +title: "IDiaSymbol::get_isWinRTPointer" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_isWinRTPointer method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_isWinRTPointer + +Retrieves a flag indicating whether this is a WinRT pointer type. + +## Syntax + +```C++ +HRESULT get_isWinRTPointer (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if the symbol is a WinRT pointer; otherwise, `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also +- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-memoryspacekind.md b/docs/debugger/debug-interface-access/idiasymbol-get-memoryspacekind.md index e421a490c39..c48fbe3c60a 100644 --- a/docs/debugger/debug-interface-access/idiasymbol-get-memoryspacekind.md +++ b/docs/debugger/debug-interface-access/idiasymbol-get-memoryspacekind.md @@ -1,7 +1,7 @@ --- description: "Retrieves the memory space kind." title: "IDiaSymbol::get_memorySpaceKind" -ms.date: "11/04/2016" +ms.date: "07/18/2024" ms.topic: "reference" dev_langs: - "C++" @@ -10,7 +10,7 @@ ms.author: "mikejo" manager: mijacobs ms.subservice: debug-diagnostics --- -# IDiaSymbol::get_memorySpaceKind +# `IDiaSymbol::get_memorySpaceKind` Retrieves the memory space kind. @@ -22,12 +22,21 @@ HRESULT get_memorySpaceKind( ``` #### Parameters + `pRetVal` -[out] A pointer to a `DWORD` that holds the memory space kind. +[out] A pointer to a `DWORD` that holds the memory space kind. Usually a value from the [`CV_HLSLMemorySpace_e`](../../debugger/debug-interface-access/cv-hlslmemoryspace-e.md) enumeration. ## Return Value + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. +## Remarks + +> [!NOTE] +> The newer DXC compiler no longer produces PDBs. This API only has valid values on PDBs produced by the older *fxc.exe* compiler. + ## See also -- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`CV_HLSLMemorySpace_e` Enumeration](../../debugger/debug-interface-access/cv-hlslmemoryspace-e.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-modifiervalues.md b/docs/debugger/debug-interface-access/idiasymbol-get-modifiervalues.md new file mode 100644 index 00000000000..545c5479a22 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-modifiervalues.md @@ -0,0 +1,54 @@ +--- +description: "Retrieves the set of modifers for this symbol." +title: "IDiaSymbol::get_modifierValues" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_modifierValues method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_modifierValues + +Retrieves the total invocation count in PGO training. + +## Syntax + +```C++ +HRESULT get_modifierValues( + DWORD cnt, + DWORD *pcnt, + DWORD *pModifiers +); +``` + +#### Parameters + + `cnt` + +[in] The number of DWORDs pointed to by the buffer `pModifiers`. + + `pcnt` + +[out] Returns the number of valid properties set in `pModifiers`. + + `pModifiers` + +[out] Returns an array of [`CV_modifier_e`](../../debugger/debug-interface-access/cv-modifier-e.md) values. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`CV_modifier_e`](../../debugger/debug-interface-access/cv-modifier-e.md) +- [`IDiaSymbol::get_numberOfModifers`](../../debugger/debug-interface-access/idiasymbol-get-numberofmodifiers.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-nonameexport.md b/docs/debugger/debug-interface-access/idiasymbol-get-nonameexport.md new file mode 100644 index 00000000000..1dceb37da4e --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-nonameexport.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag indicating whether this export is NONAME." +title: "IDiaSymbol::get_noNameExport" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_noNameExport method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_noNameExport + +Retrieves a flag indicating whether this export is `NONAME`. + +## Syntax + +```C++ +HRESULT get_noNameExport (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if the export symbol is marked as `NONAME`; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`EXPORTS`](/cpp/build/reference/exports) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-numberofmodifiers.md b/docs/debugger/debug-interface-access/idiasymbol-get-numberofmodifiers.md index 25c0aac6322..248d03ddba8 100644 --- a/docs/debugger/debug-interface-access/idiasymbol-get-numberofmodifiers.md +++ b/docs/debugger/debug-interface-access/idiasymbol-get-numberofmodifiers.md @@ -1,7 +1,7 @@ --- description: "Retrieves the number of modifiers that are applied to the original type." title: "IDiaSymbol::get_numberOfModifiers" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -10,7 +10,7 @@ ms.author: "mikejo" manager: mijacobs ms.subservice: debug-diagnostics --- -# IDiaSymbol::get_numberOfModifiers +# `IDiaSymbol::get_numberOfModifiers` Retrieves the number of modifiers that are applied to the original type. @@ -30,4 +30,6 @@ HRESULT get_numberOfModifiers( If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. ## See also -- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol::get_modifierValues`](../../debugger/debug-interface-access/idiasymbol-get-modifiervalues.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-numericproperties.md b/docs/debugger/debug-interface-access/idiasymbol-get-numericproperties.md new file mode 100644 index 00000000000..3fbb9b81ff1 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-numericproperties.md @@ -0,0 +1,85 @@ +--- +description: "Retrieves the set of numeric properties for this symbol." +title: "IDiaSymbol::get_numericProperties" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_numericProperties method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_numericProperties + +Retrieves the set of numeric properties for this symbol. + +## Syntax + +```C++ +HRESULT get_numericProperties( + DWORD cnt, + DWORD *pcnt, + DWORD *pProperties +); +``` + +#### Parameters + + `cnt` + +[in] The number of DWORDs pointed to by the buffer `pProperties`. + + `pcnt` + +[out] Returns the number of valid properties set in `pProperties`. + + `pProperties` + +[out] Returns the set of properties for this symbol. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Example + +```C++ +CComPtr pSymbol; +BOOL f = FALSE; +HRESULT hr = E_FAIL; +... + +hr = pSymbol->get_isHLSLData(&f); +if (FAILED(hr)) { + return hr; +} +if (f) { + DWORD value = 0; + hr = pSymbol->get_numberOfRegisterIndices(&value); + if (hr == S_OK && value > 0) { + DWORD *pOff = new (std::nothrow) DWORD[value]; + if (pOff == NULL) { + return E_OUTOFMEMORY; + } + DWORD propertiesRead; + if (IfOkOrReportAuto(pSymbol->get_numericProperties(value, &propertiesRead, pOff))) { + value = __min(value, propertiesRead); + for (DWORD i = 0; i < value; i++) { + printf("%u\n", pOff[i]); + } + } + delete[] pOff; + } +} +``` + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol::get_numberOfRegisterIndices`](../../debugger/debug-interface-access/idiasymbol-get-numberofregisterindices.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-ordinal.md b/docs/debugger/debug-interface-access/idiasymbol-get-ordinal.md new file mode 100644 index 00000000000..8810ca2007c --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-ordinal.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves the ordinal of this export." +title: "IDiaSymbol::get_ordinal" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_ordinal method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_ordinal + +Retrieves the ordinal of this export. + +## Syntax + +```C++ +HRESULT get_ordinal (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the ordinal of this export. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`EXPORTS`](/cpp/build/reference/exports) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-pgodynamicinstructioncount.md b/docs/debugger/debug-interface-access/idiasymbol-get-pgodynamicinstructioncount.md new file mode 100644 index 00000000000..8acc0c8ab2e --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-pgodynamicinstructioncount.md @@ -0,0 +1,49 @@ +--- +description: "Retrieves the dynamic instruction count calculated by training." +title: "IDiaSymbol::get_PGODynamicInstructionCount" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_PGODynamicInstructionCount method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_PGODynamicInstructionCount + +Retrieves the dynamic instruction count calculated by training. + +## Syntax + +```C++ +HRESULT get_PGODynamicInstructionCount (  + ULONGLONG* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the count of dynamic instructions executed during training. See remarks. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Remarks + +This is the number of instructions in the function that were executed during training. FOr example if two instructions were executed twice each, this would return a dynamic instruction count of 4, meaning 4 instructions were executed during the training. To get the total size of the function, including dead instructions (i.e. instructions never executed by the training data), use [`IDiaSymbol::get_staticSize`](../../debugger/debug-interface-access/idiasymbol-get-staticsize.md). To get the number of live instructions, not multiplied by execution counts, use [`IDiaSymbol::get_finalLiveStaticSize`](../../debugger/debug-interface-access/idiasymbol-get-finallivestaticsize.md). + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol::get_staticSize`](../../debugger/debug-interface-access/idiasymbol-get-staticsize.md) +- [`IDiaSymbol::get_finalLiveStaticSize`](../../debugger/debug-interface-access/idiasymbol-get-finallivestaticsize.md) +- [Profile-guided optimizations](/cpp/build/profile-guided-optimizations) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-pgoedgecount.md b/docs/debugger/debug-interface-access/idiasymbol-get-pgoedgecount.md new file mode 100644 index 00000000000..2b5ee5a82b9 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-pgoedgecount.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves the edge count between a caller/callee and it's parent." +title: "IDiaSymbol::get_PGOEdgeCount" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_PGOEdgeCount method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_PGOEdgeCount + +Retrieves the edge count between a caller/callee and it's parent. + +## Syntax + +```C++ +HRESULT get_PGOEdgeCount (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the edge count between a caller/calle. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [Profile-guided optimizations](/cpp/build/profile-guided-optimizations) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-pgoentrycount.md b/docs/debugger/debug-interface-access/idiasymbol-get-pgoentrycount.md new file mode 100644 index 00000000000..14245e7d3c4 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-pgoentrycount.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves the total invocation count in PGO training." +title: "IDiaSymbol::get_PGOEntryCount" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_PGOEntryCount method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_PGOEntryCount + +Retrieves the total invocation count in PGO training. + +## Syntax + +```C++ +HRESULT get_PGOEntryCount (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the total invocation count in PGO training. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [Profile-guided optimizations](/cpp/build/profile-guided-optimizations) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-phasename.md b/docs/debugger/debug-interface-access/idiasymbol-get-phasename.md new file mode 100644 index 00000000000..781733fb777 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-phasename.md @@ -0,0 +1,42 @@ +--- +description: "Retrieves the phase this function is a member of for PGO multiphased builds." +title: "IDiaSymbol::get_phaseName" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_phaseName method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_phaseName + +Retrieves the phase this function is a member of for PGO multiphased builds. + +## Syntax + +```C++ +HRESULT get_phaseName (  + BSTR* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the phase name. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also +- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) +- [Profile-guided optimizations](/cpp/build/profile-guided-optimizations) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-privatexport.md b/docs/debugger/debug-interface-access/idiasymbol-get-privatexport.md new file mode 100644 index 00000000000..1632b190d6a --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-privatexport.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag indicating whether this export is PRIVATE." +title: "IDiaSymbol::get_privateExport" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_privateExport method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_privateExport + +Retrieves a flag indicating whether this export is `PRIVATE`. + +## Syntax + +```C++ +HRESULT get_privateExport (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if the export symbol is marked as `PRIVATE`; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`EXPORTS`](/cpp/build/reference/exports) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-registertype.md b/docs/debugger/debug-interface-access/idiasymbol-get-registertype.md index 29abdfc8cec..9cfe89a5fe6 100644 --- a/docs/debugger/debug-interface-access/idiasymbol-get-registertype.md +++ b/docs/debugger/debug-interface-access/idiasymbol-get-registertype.md @@ -1,7 +1,7 @@ --- description: "Retrieves the register type." title: "IDiaSymbol::get_registerType" -ms.date: "11/04/2016" +ms.date: "07/18/2024" ms.topic: "reference" dev_langs: - "C++" @@ -10,7 +10,7 @@ ms.author: "mikejo" manager: mijacobs ms.subservice: debug-diagnostics --- -# IDiaSymbol::get_registerType +# `IDiaSymbol::get_registerType` Retrieves the register type. @@ -22,12 +22,20 @@ HRESULT get_registerType( ``` #### Parameters + `pRetVal` -[out] A pointer to a `DWORD` that holds the register type. +[out] A pointer to a `DWORD` that holds the register type, a value from [`CV_HLSLREG_e`](../../debugger/debug-interface-access/cv-hlslreg-e.md). ## Return Value If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +## Remarks + +> [!NOTE] +> The newer DXC compiler no longer produces PDBs. This API only has valid values on PDBs produced by the older *fxc.exe* compiler. ## See also -- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`CV_HLSLREG_e` Enumeration](../../debugger/debug-interface-access/cv-hlslreg-e.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-staticsize.md b/docs/debugger/debug-interface-access/idiasymbol-get-staticsize.md new file mode 100644 index 00000000000..ac6486dd2c3 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-staticsize.md @@ -0,0 +1,49 @@ +--- +description: "Retrieves the static instruction count." +title: "IDiaSymbol::get_staticSize" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_staticSize method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_staticSize + +Retrieves the static instruction count. + +## Syntax + +```C++ +HRESULT get_staticSize (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the count of instructions in the function. See remarks, + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Remarks + +This is the total number of instructions in the function. To get only the count of live instructions, use [`IDiaSymbol::get_finalLiveStaticSize`](../../debugger/debug-interface-access/idiasymbol-get-finallivestaticsize.md). To get the number of instructions executed in this function use [`IDiaSymbol::get_PGODynamicInstructionCount`](../../debugger/debug-interface-access/idiasymbol-get-pgodynamicinstructioncount.md). + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol::get_finalLiveStaticSize`](../../debugger/debug-interface-access/idiasymbol-get-finallivestaticsize.md) +- [`IDiaSymbol::get_PGODynamicInstructionCount`](../../debugger/debug-interface-access/idiasymbol-get-pgodynamicinstructioncount.md) +- [Profile-guided optimizations](/cpp/build/profile-guided-optimizations) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-strictgscheck.md b/docs/debugger/debug-interface-access/idiasymbol-get-strictgscheck.md new file mode 100644 index 00000000000..241bbecaa3b --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-strictgscheck.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag indicating whether this function was compiled with strict_gs_check pragma enabled" +title: "IDiaSymbol::get_strictGSCheck" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_strictGSCheck method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_strictGSCheck + +Retrieves a flag indicating whether this function was compiled with [`strict_gs_check` pragma](/cpp/preprocessor/strict-gs-check) enabled. + +## Syntax + +```C++ +HRESULT get_strictGSCheck (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if the function was compiled with [`strict_gs_check` pragma](/cpp/preprocessor/strict-gs-check) enabled; otherwise, `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`strict_gs_check` pragma](/cpp/preprocessor/strict-gs-check) \ No newline at end of file diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-unused.md b/docs/debugger/debug-interface-access/idiasymbol-get-unused.md new file mode 100644 index 00000000000..1b996fe7855 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-unused.md @@ -0,0 +1,43 @@ +--- +description: "Deprecated function." +title: "IDiaSymbol::get_unused" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_unused method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_unused + +Deprecated function. + +## Syntax + +```C++ +HRESULT get_unused (  + BSTR* pReserved +); +``` + +#### Parameters + + `pReserved` + +[out] Unused + +## Return Value + + Always returns `E_NOTIMPL`; + +## Remarks + + This method is deprecated. It should not be called, and always fails. It exists soleyl to maintain compatibility with vtable ordering as expected by older clients. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol-get-wasinlined.md b/docs/debugger/debug-interface-access/idiasymbol-get-wasinlined.md new file mode 100644 index 00000000000..641fe0a2ca0 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol-get-wasinlined.md @@ -0,0 +1,42 @@ +--- +description: "Retrieves a flag indicating whether this function symbol was inlined into another function." +title: "IDiaSymbol::get_wasInlined" +ms.date: "07/09/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol::get_wasInlined method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol::get_wasInlined + +Retrieves a flag indicating whether this function symbol was inlined into another function. + +## Syntax + +```C++ +HRESULT get_wasInlined (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if the function was inlined; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol.md b/docs/debugger/debug-interface-access/idiasymbol.md index aa235166e19..f53e03a098b 100644 --- a/docs/debugger/debug-interface-access/idiasymbol.md +++ b/docs/debugger/debug-interface-access/idiasymbol.md @@ -1,7 +1,7 @@ --- description: "Describes the properties of a symbol instance." title: "IDiaSymbol" -ms.date: "11/04/2016" +ms.date: "07/08/2024" ms.topic: "reference" dev_langs: - "C++" @@ -23,6 +23,7 @@ IDiaSymbol : IUnknown ``` ## Methods in Alphabetical Order + The following table shows the methods of `IDiaSymbol`. > [!NOTE] @@ -30,193 +31,247 @@ The following table shows the methods of `IDiaSymbol`. |Method|Description| |------------|-----------------| -|[IDiaSymbol::findChildren](../../debugger/debug-interface-access/idiasymbol-findchildren.md)|Retrieves all children of the symbol.| -|[IDiaSymbol::findChildrenEx](../../debugger/debug-interface-access/idiasymbol-findchildrenex.md)|Retrieves the children of the symbol. This method is the extended version of [IDiaSymbol::findChildren](../../debugger/debug-interface-access/idiasymbol-findchildren.md).| -|[IDiaSymbol::findChildrenExByAddr](../../debugger/debug-interface-access/idiasymbol-findchildrenexbyaddr.md)|Retrieves the children of the symbol that are valid at a specified address.| -|[IDiaSymbol::findChildrenExByRVA](../../debugger/debug-interface-access/idiasymbol-findchildrenexbyrva.md)|Retrieves the children of the symbol that are valid at a specified relative virtual address (RVA).| -|[IDiaSymbol::findChildrenExByVA](../../debugger/debug-interface-access/idiasymbol-findchildrenexbyva.md)|Retrieves the children of the symbol that are valid at a specified virtual address.| -|[IDiaSymbol::findInlineFramesByAddr](../../debugger/debug-interface-access/idiasymbol-findinlineframesbyaddr.md)|Retrieves an enumeration that allows a client to iterate through all of the inline frames on a given address.| -|[IDiaSymbol::findInlineFramesByRVA](../../debugger/debug-interface-access/idiasymbol-findinlineframesbyrva.md)|Retrieves an enumeration that allows a client to iterate through all of the inline frames on a specified relative virtual address (RVA).| -|[IDiaSymbol::findInlineFramesByVA](../../debugger/debug-interface-access/idiasymbol-findinlineframesbyva.md)|Retrieves an enumeration that allows a client to iterate through all of the inline frames on a specified virtual address (VA).| -|[IDiaSymbol::findInlineeLines](../../debugger/debug-interface-access/idiasymbol-findinlineelines.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in this symbol.| -|[IDiaSymbol::findInlineeLinesByAddr](../../debugger/debug-interface-access/idiasymbol-findinlineelinesbyaddr.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in this symbol within the specified address range.| -|[IDiaSymbol::findInlineeLinesByRVA](../../debugger/debug-interface-access/idiasymbol-findinlineelinesbyrva.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in this symbol within the specified relative virtual address (RVA).| -|[IDiaSymbol::findInlineeLinesByVA](../../debugger/debug-interface-access/idiasymbol-findinlineelinesbyva.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in this symbol within the specified virtual address (VA).| -|[IDiaSymbol::findSymbolsByRVAForAcceleratorPointerTag](../../debugger/debug-interface-access/idiasymbol-findsymbolsbyrvaforacceleratorpointertag.md)|Given a corresponding tag value, this method returns an enumeration of symbols that are contained in this stub function at a specified relative virtual address.| -|[IDiaSymbol::findSymbolsForAcceleratorPointerTag](../../debugger/debug-interface-access/idiasymbol-findsymbolsforacceleratorpointertag.md)|Returns the number of accelerator pointer tags in a C++ AMP stub function.| -|[IDiaSymbol::get_acceleratorPointerTags](../../debugger/debug-interface-access/idiasymbol-get-acceleratorpointertags.md)|Returns all accelerator pointer tag values that correspond to a C++ AMP accelerator stub function.| -|[IDiaSymbol::get_access](../../debugger/debug-interface-access/idiasymbol-get-access.md)|Retrieves the access modifier of a class member.| -|[IDiaSymbol::get_addressOffset](../../debugger/debug-interface-access/idiasymbol-get-addressoffset.md)|Retrieves the offset part of an address location.| -|[IDiaSymbol::get_addressSection](../../debugger/debug-interface-access/idiasymbol-get-addresssection.md)|Retrieves the section part of an address location.| -|[IDiaSymbol::get_addressTaken](../../debugger/debug-interface-access/idiasymbol-get-addresstaken.md)|Retrieves a flag indicating whether another symbol references this address.| -|[IDiaSymbol::get_age](../../debugger/debug-interface-access/idiasymbol-get-age.md)|Retrieves the age value of a program database.| -|[IDiaSymbol::get_arrayIndexType](../../debugger/debug-interface-access/idiasymbol-get-arrayindextype.md)|Retrieves the symbol identifier of the array index type.| -|[IDiaSymbol::get_arrayIndexTypeId](../../debugger/debug-interface-access/idiasymbol-get-arrayindextypeid.md)|Retrieves the array index type identifier of the symbol.| -|[IDiaSymbol::get_backEndMajor](../../debugger/debug-interface-access/idiasymbol-get-backendmajor.md)|Retrieves the back-end major version number.| -|[IDiaSymbol::get_backEndMinor](../../debugger/debug-interface-access/idiasymbol-get-backendminor.md)|Retrieves the back-end minor version number.| -|[IDiaSymbol::get_backEndBuild](../../debugger/debug-interface-access/idiasymbol-get-backendbuild.md)|Retrieves the back-end build number.| -|[IDiaSymbol::get_baseDataOffset](../../debugger/debug-interface-access/idiasymbol-get-basedataoffset.md)|Retrieves the base data offset.| -|[IDiaSymbol::get_baseDataSlot](../../debugger/debug-interface-access/idiasymbol-get-basedataslot.md)|Retrieves the base data slot.| -|[IDiaSymbol::get_baseSymbol](../../debugger/debug-interface-access/idiasymbol-get-basesymbol.md)|Retrieves the symbol from which the pointer is based.| -|[IDiaSymbol::get_baseSymbolId](../../debugger/debug-interface-access/idiasymbol-get-basesymbolid.md)|Retrieves the symbol ID from which the pointer is based.| -|[IDiaSymbol::get_baseType](../../debugger/debug-interface-access/idiasymbol-get-basetype.md)|Retrieves the type tag of a simple type.| -|[IDiaSymbol::get_bitPosition](../../debugger/debug-interface-access/idiasymbol-get-bitposition.md)|Retrieves the bit position of a location.| -|[IDiaSymbol::get_builtInKind](../../debugger/debug-interface-access/idiasymbol-get-builtinkind.md)|Retrieves a built-in kind of the HLSL type.| -|[IDiaSymbol::get_callingConvention](../../debugger/debug-interface-access/idiasymbol-get-callingconvention.md)|Returns an indicator of a method's calling convention.| -|[IDiaSymbol::get_classParent](../../debugger/debug-interface-access/idiasymbol-get-classparent.md)|Retrieves a reference to the class parent of the symbol.| -|[IDiaSymbol::get_classParentId](../../debugger/debug-interface-access/idiasymbol-get-classparentid.md)|Retrieves the class parent identifier of the symbol.| -|[IDiaSymbol::get_code](../../debugger/debug-interface-access/idiasymbol-get-code.md)|Retrieves a flag indicating whether the symbol refers to a code address.| -|[IDiaSymbol::get_compilerGenerated](../../debugger/debug-interface-access/idiasymbol-get-compilergenerated.md)|Retrieves a flag indicating whether the symbol was compiler-generated.| -|[IDiaSymbol::get_compilerName](../../debugger/debug-interface-access/idiasymbol-get-compilername.md)|Retrieves the name of the compiler used to create the [Compiland](../../debugger/debug-interface-access/compiland.md).| -|[IDiaSymbol::get_constructor](../../debugger/debug-interface-access/idiasymbol-get-constructor.md)|Retrieves a flag indicating whether the user-defined data type has a constructor.| -|[IDiaSymbol::get_container](../../debugger/debug-interface-access/idiasymbol-get-container.md)|Retrieves the containing symbol of this symbol.| -|[IDiaSymbol::get_constType](../../debugger/debug-interface-access/idiasymbol-get-consttype.md)|Retrieves a flag indicating whether the user-defined data type is constant.| -|[IDiaSymbol::get_count](../../debugger/debug-interface-access/idiasymbol-get-count.md)|Retrieves the number of items in a list or array.| -|[IDiaSymbol::get_countLiveRanges](../../debugger/debug-interface-access/idiasymbol-get-countliveranges.md)|Retrieves the number of valid address ranges associated with the local symbol.| -|[IDiaSymbol::get_customCallingConvention](../../debugger/debug-interface-access/idiasymbol-get-customcallingconvention.md)|Retrieves a flag indicating whether the function uses a custom calling convention.| -|[IDiaSymbol::get_dataBytes](../../debugger/debug-interface-access/idiasymbol-get-databytes.md)|Retrieves the data bytes of an OEM symbol.| -|[IDiaSymbol::get_dataKind](../../debugger/debug-interface-access/idiasymbol-get-datakind.md)|Retrieves the variable classification of a data symbol.| -|[IDiaSymbol::get_editAndContinueEnabled](../../debugger/debug-interface-access/idiasymbol-get-editandcontinueenabled.md)|Retrieves the flag describing the Edit and Continue features of the compiled program or unit.| -|[IDiaSymbol::get_farReturn](../../debugger/debug-interface-access/idiasymbol-get-farreturn.md)|Retrieves a flag indicating whether the function uses a far return.| -|[IDiaSymbol::get_frontEndMajor](../../debugger/debug-interface-access/idiasymbol-get-frontendmajor.md)|Retrieves the front-end major version number.| -|[IDiaSymbol::get_frontEndMinor](../../debugger/debug-interface-access/idiasymbol-get-frontendminor.md)|Retrieves the front-end minor version number.| -|[IDiaSymbol::get_frontEndBuild](../../debugger/debug-interface-access/idiasymbol-get-frontendbuild.md)|Retrieves the front-end build number.| -|[IDiaSymbol::get_function](../../debugger/debug-interface-access/idiasymbol-get-function.md)|Retrieves a flag indicating whether the public symbol refers to a function.| -|[IDiaSymbol::get_guid](../../debugger/debug-interface-access/idiasymbol-get-guid.md)|Retrieves the symbol's GUID.| -|[IDiaSymbol::get_hasAlloca](../../debugger/debug-interface-access/idiasymbol-get-hasalloca.md)|Retrieves a flag indicating whether the function contains a call to `alloca`.| -|[IDiaSymbol::get_hasAssignmentOperator](../../debugger/debug-interface-access/idiasymbol-get-hasassignmentoperator.md)|Retrieves a flag indicating whether the user-defined data type has any assignment operators defined.| -|[IDiaSymbol::get_hasCastOperator](../../debugger/debug-interface-access/idiasymbol-get-hascastoperator.md)|Retrieves a flag indicating whether the user-defined data type has any cast operators defined.| -|[IDiaSymbol::get_hasDebugInfo](../../debugger/debug-interface-access/idiasymbol-get-hasdebuginfo.md)|Retrieves a flag indicating whether the compiland contains any debugging information.| -|[IDiaSymbol::get_hasEH](../../debugger/debug-interface-access/idiasymbol-get-haseh.md)|Retrieves a flag indicating whether the function has a C++-style exception handler.| -|[IDiaSymbol::get_hasEHa](../../debugger/debug-interface-access/idiasymbol-get-haseha.md)|Retrieves a flag indicating whether the function has an asynchronous exception handler.| -|[IDiaSymbol::get_hasInlAsm](../../debugger/debug-interface-access/idiasymbol-get-hasinlasm.md)|Retrieves a flag indicating whether the function has inline assembly.| -|[IDiaSymbol::get_hasLongJump](../../debugger/debug-interface-access/idiasymbol-get-haslongjump.md)|Retrieves a flag indicating whether the function contains a longjmp command (part of C-style exception handling).| -|[IDiaSymbol::get_hasManagedCode](../../debugger/debug-interface-access/idiasymbol-get-hasmanagedcode.md)|Retrieves a flag indicating whether the module contains managed code.| -|[IDiaSymbol::get_hasNestedTypes](../../debugger/debug-interface-access/idiasymbol-get-hasnestedtypes.md)|Retrieves a flag indicating whether the user-defined data type has nested type definitions.| -|[IDiaSymbol::get_hasSecurityChecks](../../debugger/debug-interface-access/idiasymbol-get-hassecuritychecks.md)|Retrieves a flag indicating whether the function or compiland has security checks compiled in (via the [/GS (Buffer Security Check)](/cpp/build/reference/gs-buffer-security-check) compiler switch).| -|[IDiaSymbol::get_hasSEH](../../debugger/debug-interface-access/idiasymbol-get-hasseh.md)|Retrieves a flag indicating whether the function has Win32-style Structured Exception Handling.| -|[IDiaSymbol::get_hasSetJump](../../debugger/debug-interface-access/idiasymbol-get-hassetjump.md)|Retrieves a flag indicating whether the function contains a setjmp command.| -|[IDiaSymbol::get_indirectVirtualBaseClass](../../debugger/debug-interface-access/idiasymbol-get-indirectvirtualbaseclass.md)|Retrieves a flag indicating whether the user-defined data type is an indirect virtual base class.| -|[IDiaSymbol::get_InlSpec](../../debugger/debug-interface-access/idiasymbol-get-inlspec.md)|Retrieves a flag indicating whether the function has been marked with the inline attribute.| -|[IDiaSymbol::get_interruptReturn](../../debugger/debug-interface-access/idiasymbol-get-interruptreturn.md)|Retrieves a flag indicating whether the function has a return from interrupt instruction.| -|[IDiaSymbol::get_intro](../../debugger/debug-interface-access/idiasymbol-get-intro.md)|Retrieves a flag indicating whether the function is the base class virtual function.| -|[IDiaSymbol::get_isAcceleratorGroupSharedLocal](../../debugger/debug-interface-access/idiasymbol-get-isacceleratorgroupsharedlocal.md)|Retrieves a flag that indicates whether the symbol corresponds to a group shared local variable in code compiled for a C++ AMP Accelerator.| -|[IDiaSymbol::get_isAcceleratorPointerTagLiveRange](../../debugger/debug-interface-access/idiasymbol-get-isacceleratorpointertagliverange.md)|Retrieves a flag that indicates whether the symbol corresponds to the *definition range symbol* for the tag component of a pointer variable in code compiled for a C++ AMP Accelerator. The definition range symbol is the location of a variable for a span of addresses.| -|[IDiaSymbol::get_isAcceleratorStubFunction](../../debugger/debug-interface-access/idiasymbol-get-isacceleratorstubfunction.md)|Indicates whether the symbol corresponds to a top-level function symbol for a shader compiled for an accelerator that corresponds to a `parallel_for_each` call.| -|[IDiaSymbol::get_isAggregated](../../debugger/debug-interface-access/idiasymbol-get-isaggregated.md)|Retrieves a flag indicating whether the data is part of an aggregate of many symbols.| -|[IDiaSymbol::get_isCTypes](../../debugger/debug-interface-access/idiasymbol-get-isctypes.md)|Retrieves a flag indicating whether the symbol file contains C types.| -|[IDiaSymbol::get_isCVTCIL](../../debugger/debug-interface-access/idiasymbol-get-iscvtcil.md)|Retrieves a flag indicating whether the module was converted from Common Intermediate Language (CIL) to native code.| -|[IDiaSymbol::get_isDataAligned](../../debugger/debug-interface-access/idiasymbol-get-isdataaligned.md)|Retrieves a flag indicating whether the elements of a user-defined data type are aligned to a specific boundary.| -|[IDiaSymbol::get_isHLSLData](../../debugger/debug-interface-access/idiasymbol-get-ishlsldata.md)|Specifies whether this symbol represents High Level Shader Language (HLSL) data.| -|[IDiaSymbol::get_isHotpatchable](../../debugger/debug-interface-access/idiasymbol-get-ishotpatchable.md)|Retrieves a flag indicating whether the module was compiled with the [/hotpatch (Create Hotpatchable Image)](/cpp/build/reference/hotpatch-create-hotpatchable-image) compiler switch.| -|[IDiaSymbol::get_isLTCG](../../debugger/debug-interface-access/idiasymbol-get-isltcg.md)|Retrieves a flag indicating whether the managed compiland was linked with the linker's LTCG.| -|[IDiaSymbol::get_isMatrixRowMajor](../../debugger/debug-interface-access/idiasymbol-get-ismatrixrowmajor.md)|Specifies whether the matrix is row major.| -|[IDiaSymbol::get_isMSILNetmodule](../../debugger/debug-interface-access/idiasymbol-get-ismsilnetmodule.md)|Retrieves a flag indicating whether the managed compiland is a .netmodule (containing only metadata).| -|[IDiaSymbol::get_isMultipleInheritance](../../debugger/debug-interface-access/idiasymbol-get-ismultipleinheritance.md)|Specifies whether the `this` pointer points to a data member with multiple inheritance.| -|[IDiaSymbol::get_isNaked](../../debugger/debug-interface-access/idiasymbol-get-isnaked.md)|Retrieves a flag indicating whether the function has the [naked](/cpp/cpp/naked-cpp) attribute.| -|[IDiaSymbol::get_isOptimizedAway](../../debugger/debug-interface-access/idiasymbol-get-isoptimizedaway.md)|Specifies whether the variable is optimized away.| -|[IDiaSymbol::get_isPointerBasedOnSymbolValue](../../debugger/debug-interface-access/idiasymbol-get-ispointerbasedonsymbolvalue.md)|Specifies whether the `this` pointer is based on a symbol value.| -|[IDiaSymbol::get_isPointerToDataMember](../../debugger/debug-interface-access/idiasymbol-get-ispointertodatamember.md)|Specifies whether this symbol is a pointer to a data member.| -|[IDiaSymbol::get_isPointerToMemberFunction](../../debugger/debug-interface-access/idiasymbol-get-ispointertomemberfunction.md)|Specifies whether this symbol is a pointer to a member function.| -|[IDiaSymbol::get_isReturnValue](../../debugger/debug-interface-access/idiasymbol-get-isreturnvalue.md)|Specifies whether the variable carries a return value.| -|[IDiaSymbol::get_isSdl](../../debugger/debug-interface-access/idiasymbol-get-issdl.md)|Specifies whether the module is compiled with the /SDL option.| -|[IDiaSymbol::get_isSingleInheritance](../../debugger/debug-interface-access/idiasymbol-get-issingleinheritance.md)|Specifies whether the `this` pointer points to a data member with single inheritance.| -|[IDiaSymbol::get_isSplitted](../../debugger/debug-interface-access/idiasymbol-get-issplitted.md)|Retrieves a flag indicating whether the data has been split into an aggregate of separate symbols.| -|[IDiaSymbol::get_isStatic](../../debugger/debug-interface-access/idiasymbol-get-isstatic.md)|Retrieves a flag indicating whether a function or thunk layer is static.| -|[IDiaSymbol::get_isStripped](../../debugger/debug-interface-access/idiasymbol-get-isstripped.md)|Retrieves a flag indicating whether private symbols have been stripped from the symbol file.| -|[IDiaSymbol::get_isVirtualInheritance](../../debugger/debug-interface-access/idiasymbol-get-isvirtualinheritance.md)|Specifies whether the `this` pointer points to a data member with virtual inheritance.| -|[IDiaSymbol::get_language](../../debugger/debug-interface-access/idiasymbol-get-language.md)|Retrieves the language of the source.| -|[IDiaSymbol::get_length](../../debugger/debug-interface-access/idiasymbol-get-length.md)|Retrieves the number of bytes of memory used by the object represented by this symbol.| -|[IDiaSymbol::get_lexicalParent](../../debugger/debug-interface-access/idiasymbol-get-lexicalparent.md)|Retrieves a reference to the lexical parent of the symbol.| -|[IDiaSymbol::get_lexicalParentId](../../debugger/debug-interface-access/idiasymbol-get-lexicalparentid.md)|Retrieves the lexical parent identifier of the symbol.| -|[IDiaSymbol::get_libraryName](../../debugger/debug-interface-access/idiasymbol-get-libraryname.md)|Retrieves the file name of the library or object file from which the object was loaded.| -|[IDiaSymbol::get_liveRangeLength](../../debugger/debug-interface-access/idiasymbol-get-liverangelength.md)|Returns the length of the address range in which the local symbol is valid.| -|[IDiaSymbol::get_liveRangeStartAddressSection](../../debugger/debug-interface-access/idiasymbol-get-liverangestartaddresssection.md)|Returns the section part of the starting address range in which the local symbol is valid.| -|[IDiaSymbol::get_liveRangeStartAddressOffset](../../debugger/debug-interface-access/idiasymbol-get-liverangestartaddressoffset.md)|Returns the offset part of the starting address range in which the local symbol is valid.| -|[IDiaSymbol::get_liveRangeStartRelativeVirtualAddress](../../debugger/debug-interface-access/idiasymbol-get-liverangestartrelativevirtualaddress.md)|Returns the start of the address range in which the local symbol is valid.| -|[IDiaSymbol::get_locationType](../../debugger/debug-interface-access/idiasymbol-get-locationtype.md)|Retrieves the location type of a data symbol.| -|[IDiaSymbol::get_lowerBound](../../debugger/debug-interface-access/idiasymbol-get-lowerbound.md)|Retrieves the lower bound of a FORTRAN array dimension.| -|[IDiaSymbol::get_lowerBoundId](../../debugger/debug-interface-access/idiasymbol-get-lowerboundid.md)|Retrieves the symbol identifier of the lower bound of a FORTRAN array dimension.| -|[IDiaSymbol::get_machineType](../../debugger/debug-interface-access/idiasymbol-get-machinetype.md)|Retrieves the type of the target CPU.| -|[IDiaSymbol::get_managed](../../debugger/debug-interface-access/idiasymbol-get-managed.md)|Retrieves a flag that indicating whether the symbol refers to managed code.| -|[IDiaSymbol::get_memorySpaceKind](../../debugger/debug-interface-access/idiasymbol-get-memoryspacekind.md)|Retrieves the memory space kind.| -|[IDiaSymbol::get_msil](../../debugger/debug-interface-access/idiasymbol-get-msil.md)|Retrieves a flag indicating whether the symbol refers to Microsoft Intermediate Language (MSIL) code.| -|[IDiaSymbol::get_name](../../debugger/debug-interface-access/idiasymbol-get-name.md)|Retrieves the name of the symbol.| -|[IDiaSymbol::get_nested](../../debugger/debug-interface-access/idiasymbol-get-nested.md)|Retrieves a flag indicating whether the user-defined data type is nested.| -|[IDiaSymbol::get_noInline](../../debugger/debug-interface-access/idiasymbol-get-noinline.md)|Retrieves a flag indicating whether the function is marked with the [noinline](/cpp/cpp/noinline) attribute.| -|[IDiaSymbol::get_noReturn](../../debugger/debug-interface-access/idiasymbol-get-noreturn.md)|Retrieves a flag indicating whether the function has been declared with the [noreturn](/cpp/cpp/noreturn) attribute.| -|[IDiaSymbol::get_noStackOrdering](../../debugger/debug-interface-access/idiasymbol-get-nostackordering.md)|Retrieves a flag indicating whether no stack ordering could be done as part of stack buffer checking.| -|[IDiaSymbol::get_notReached](../../debugger/debug-interface-access/idiasymbol-get-notreached.md)|Retrieves a flag indicating whether the function or label is never reached.| -|[IDiaSymbol::get_numberOfAcceleratorPointerTags](../../debugger/debug-interface-access/idiasymbol-get-numberofacceleratorpointertags.md)|Returns the number of accelerator pointer tags in a C++ AMP stub function.| -|[IDiaSymbol::get_numberOfModifiers](../../debugger/debug-interface-access/idiasymbol-get-numberofmodifiers.md)|Retrieves the number of modifiers that are applied to the original type.| -|[IDiaSymbol::get_numberOfRegisterIndices](../../debugger/debug-interface-access/idiasymbol-get-numberofregisterindices.md)|Retrieves the number of register indices.| -|[IDiaSymbol::get_numberOfRows](../../debugger/debug-interface-access/idiasymbol-get-numberofrows.md)|Retrieves the number of rows in the matrix.| -|[IDiaSymbol::get_numberOfColumns](../../debugger/debug-interface-access/idiasymbol-get-numberofcolumns.md)|Retrieves the number of columns in the matrix.| -|[IDiaSymbol::get_objectFileName](../../debugger/debug-interface-access/idiasymbol-get-objectfilename.md)|Retrieves the object file name.| -|[IDiaSymbol::get_objectPointerType](../../debugger/debug-interface-access/idiasymbol-get-objectpointertype.md)|Retrieves the type of the object pointer for a class method.| -|[IDiaSymbol::get_oemId](../../debugger/debug-interface-access/idiasymbol-get-oemid.md)|Retrieves the symbol's `oemId` value.| -|[IDiaSymbol::get_oemSymbolId](../../debugger/debug-interface-access/idiasymbol-get-oemsymbolid.md)|Retrieves the symbol's `oemSymbolId` value.| -|[IDiaSymbol::get_offset](../../debugger/debug-interface-access/idiasymbol-get-offset.md)|Retrieves the offset of the symbol location.| -|[IDiaSymbol::get_optimizedCodeDebugInfo](../../debugger/debug-interface-access/idiasymbol-get-optimizedcodedebuginfo.md)|Retrieves a flag indicating whether the function or label contains optimized code as well as debug information.| -|[IDiaSymbol::get_overloadedOperator](../../debugger/debug-interface-access/idiasymbol-get-overloadedoperator.md)|Retrieves a flag indicating whether the user-defined data type has overloaded operators.| -|[IDiaSymbol::get_packed](../../debugger/debug-interface-access/idiasymbol-get-packed.md)|Retrieves a flag indicating whether the user-defined data type is packed.| -|[IDiaSymbol::get_platform](../../debugger/debug-interface-access/idiasymbol-get-platform.md)|Retrieves the platform type for which the program or compiland was compiled.| -|[IDiaSymbol::get_pure](../../debugger/debug-interface-access/idiasymbol-get-pure.md)|Retrieves a flag that indicating whether the function is pure virtual.| -|[IDiaSymbol::get_rank](../../debugger/debug-interface-access/idiasymbol-get-rank.md)|Retrieves the rank of a FORTRAN multidimensional array.| -|[IDiaSymbol::get_reference](../../debugger/debug-interface-access/idiasymbol-get-reference.md)|Retrieves a flag indicating whether a pointer type is a reference.| -|[IDiaSymbol::get_registerId](../../debugger/debug-interface-access/idiasymbol-get-registerid.md)|Retrieves the register designator of the location.| -|[IDiaSymbol::get_registerType](../../debugger/debug-interface-access/idiasymbol-get-registertype.md)|Retrieves the register type.| -|[IDiaSymbol::get_relativeVirtualAddress](../../debugger/debug-interface-access/idiasymbol-get-relativevirtualaddress.md)|Retrieves the relative virtual address (RVA) of the location.| -|[IDiaSymbol::get_restrictedType](../../debugger/debug-interface-access/idiasymbol-get-restrictedtype.md)|Specifies whether the `this` pointer is flagged as restricted.| -|[IDiaSymbol::get_samplerSlot](../../debugger/debug-interface-access/idiasymbol-get-samplerslot.md)|Retrieves the sampler slot.| -|[IDiaSymbol::get_scoped](../../debugger/debug-interface-access/idiasymbol-get-scoped.md)|Retrieves a flag indicating whether the user-defined data type appears in a nonglobal lexical scope.| -|[IDiaSymbol::get_signature](../../debugger/debug-interface-access/idiasymbol-get-signature.md)|Retrieves the symbol's signature value.| -|[IDiaSymbol::get_sizeInUdt](../../debugger/debug-interface-access/idiasymbol-get-sizeinudt.md)|Retrieves the size of a member of a user-defined type.| -|[IDiaSymbol::get_slot](../../debugger/debug-interface-access/idiasymbol-get-slot.md)|Retrieves the slot number of the location.| -|[IDiaSymbol::get_sourceFileName](../../debugger/debug-interface-access/idiasymbol-get-sourcefilename.md)|Retrieves the file name of the source file.| -|[IDiaSymbol::getSrcLineOnTypeDefn](../../debugger/debug-interface-access/idiasymbol-getsrclineontypedefn.md)|Retrieves the source file and line number that indicate where a specified user-defined type is defined.| -|[IDiaSymbol::get_stride](../../debugger/debug-interface-access/idiasymbol-get-stride.md)|Retrieves the stride of the matrix or strided array.| -|[IDiaSymbol::get_subType](../../debugger/debug-interface-access/idiasymbol-get-subtype.md)|Retrieves the sub type.| -|[IDiaSymbol::get_subTypeId](../../debugger/debug-interface-access/idiasymbol-get-subtypeid.md)|Retrieves the sub type ID.| -|[IDiaSymbol::get_symbolsFileName](../../debugger/debug-interface-access/idiasymbol-get-symbolsfilename.md)|Retrieves the name of the file from which the symbols were loaded.| -|[IDiaSymbol::get_symIndexId](../../debugger/debug-interface-access/idiasymbol-get-symindexid.md)|Retrieves the unique symbol identifier.| -|[IDiaSymbol::get_symTag](../../debugger/debug-interface-access/idiasymbol-get-symtag.md)|Retrieves the symbol type classifier.| -|[IDiaSymbol::get_targetOffset](../../debugger/debug-interface-access/idiasymbol-get-targetoffset.md)|Retrieves the offset section of a thunk target.| -|[IDiaSymbol::get_targetRelativeVirtualAddress](../../debugger/debug-interface-access/idiasymbol-get-targetrelativevirtualaddress.md)|Retrieves the relative virtual address (RVA) of a thunk target.| -|[IDiaSymbol::get_targetSection](../../debugger/debug-interface-access/idiasymbol-get-targetsection.md)|Retrieves the address section of a thunk target.| -|[IDiaSymbol::get_targetVirtualAddress](../../debugger/debug-interface-access/idiasymbol-get-targetvirtualaddress.md)|Retrieves the virtual address (VA) of a thunk target.| -|[IDiaSymbol::get_textureSlot](../../debugger/debug-interface-access/idiasymbol-get-textureslot.md)|Retrieves the texture slot.| -|[IDiaSymbol::get_thisAdjust](../../debugger/debug-interface-access/idiasymbol-get-thisadjust.md)|Retrieves the logical `this` adjustor for the method.| -|[IDiaSymbol::get_thunkOrdinal](../../debugger/debug-interface-access/idiasymbol-get-thunkordinal.md)|Retrieves the thunk type of a function.| -|[IDiaSymbol::get_timeStamp](../../debugger/debug-interface-access/idiasymbol-get-timestamp.md)|Retrieves the timestamp of the underlying executable file.| -|[IDiaSymbol::get_token](../../debugger/debug-interface-access/idiasymbol-get-token.md)|Retrieves the metadata token of a managed function or variable.| -|[IDiaSymbol::get_type](../../debugger/debug-interface-access/idiasymbol-get-type.md)|Retrieves a reference to the function signature.| -|[IDiaSymbol::get_typeId](../../debugger/debug-interface-access/idiasymbol-get-typeid.md)|Retrieves the type identifier of the symbol.| -|[IDiaSymbol::get_types](../../debugger/debug-interface-access/idiasymbol-get-types.md)|Retrieves an array of compiler-specific type values for this symbol.| -|[IDiaSymbol::get_typeIds](../../debugger/debug-interface-access/idiasymbol-get-typeids.md)|Retrieves an array of compiler-specific type identifier values for this symbol.| -|[IDiaSymbol::get_uavSlot](../../debugger/debug-interface-access/idiasymbol-get-uavslot.md)|Retrieves the uav slot.| -|[IDiaSymbol::get_udtKind](../../debugger/debug-interface-access/idiasymbol-get-udtkind.md)|Retrieves the variety of a user-defined type (UDT).| -|[IDiaSymbol::get_unalignedType](../../debugger/debug-interface-access/idiasymbol-get-unalignedtype.md)|Retrieves a flag indicating whether the user-defined data type is unaligned.| -|[IDiaSymbol::get_undecoratedName](../../debugger/debug-interface-access/idiasymbol-get-undecoratedname.md)|Retrieves the undecorated name for a C++ decorated, or linkage, name.| -|[IDiaSymbol::get_undecoratedNameEx](../../debugger/debug-interface-access/idiasymbol-get-undecoratednameex.md)|Extension of the `get_undecoratedName` method that retrieves the undecorated name based on the value of an extension field.| -|[IDiaSymbol::get_unmodifiedTypeId](../../debugger/debug-interface-access/idiasymbol-get-unmodifiedtypeid.md)|Retrieves the ID of the original (unmodified) type.| -|[IDiaSymbol::get_upperBound](../../debugger/debug-interface-access/idiasymbol-get-upperbound.md)|Retrieves the upper bound of a FORTRAN array dimension.| -|[IDiaSymbol::get_upperBoundId](../../debugger/debug-interface-access/idiasymbol-get-upperboundid.md)|Retrieves the symbol identifier of the upper bound of a FORTRAN array dimension.| -|[IDiaSymbol::get_value](../../debugger/debug-interface-access/idiasymbol-get-value.md)|Retrieves the value of a constant.| -|[IDiaSymbol::get_virtual](../../debugger/debug-interface-access/idiasymbol-get-virtual.md)|Retrieves a flag indicating whether the function is virtual.| -|[IDiaSymbol::get_virtualAddress](../../debugger/debug-interface-access/idiasymbol-get-virtualaddress.md)|Retrieves the virtual address (VA) of the location.| -|[IDiaSymbol::get_virtualBaseClass](../../debugger/debug-interface-access/idiasymbol-get-virtualbaseclass.md)|Retrieves a flag indicating whether the user-defined data type is a virtual base class.| -|[IDiaSymbol::get_virtualBaseDispIndex](../../debugger/debug-interface-access/idiasymbol-get-virtualbasedispindex.md)|Retrieves the index to the virtual base displacement table.| -|[IDiaSymbol::get_virtualBaseOffset](../../debugger/debug-interface-access/idiasymbol-get-virtualbaseoffset.md)|Retrieves the offset in the virtual function table of a virtual function.| -|[IDiaSymbol::get_virtualBasePointerOffset](../../debugger/debug-interface-access/idiasymbol-get-virtualbasepointeroffset.md)|Retrieves the offset of the virtual base pointer.| -|[IDiaSymbol::get_virtualBaseTableType](../../debugger/debug-interface-access/idiasymbol-get-virtualbasetabletype.md)|Retrieves the type of a virtual base table pointer.| -|[IDiaSymbol::get_virtualTableShape](../../debugger/debug-interface-access/idiasymbol-get-virtualtableshape.md)|Retrieves the symbol interface of the type of the virtual table for a user-defined type.| -|[IDiaSymbol::get_virtualTableShapeId](../../debugger/debug-interface-access/idiasymbol-get-virtualtableshapeid.md)|Retrieves the virtual table shape identifier of the symbol.| -|[IDiaSymbol::get_volatileType](../../debugger/debug-interface-access/idiasymbol-get-volatiletype.md)|Retrieves a flag indicating whether the user-defined data type is volatile.| +|[`IDiaSymbol::findChildren`](../../debugger/debug-interface-access/idiasymbol-findchildren.md)|Retrieves all children of the symbol.| +|[`IDiaSymbol::findChildrenEx`](../../debugger/debug-interface-access/idiasymbol-findchildrenex.md)|Retrieves the children of the symbol. This method is the extended version of [IDiaSymbol::findChildren](../../debugger/debug-interface-access/idiasymbol-findchildren.md).| +|[`IDiaSymbol::findChildrenExByAddr`](../../debugger/debug-interface-access/idiasymbol-findchildrenexbyaddr.md)|Retrieves the children of the symbol that are valid at a specified address.| +|[`IDiaSymbol::findChildrenExByRVA`](../../debugger/debug-interface-access/idiasymbol-findchildrenexbyrva.md)|Retrieves the children of the symbol that are valid at a specified relative virtual address (RVA).| +|[`IDiaSymbol::findChildrenExByVA`](../../debugger/debug-interface-access/idiasymbol-findchildrenexbyva.md)|Retrieves the children of the symbol that are valid at a specified virtual address.| +|[`IDiaSymbol::findInlineeLines`](../../debugger/debug-interface-access/idiasymbol-findinlineelines.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in this symbol.| +|[`IDiaSymbol::findInlineeLinesByAddr`](../../debugger/debug-interface-access/idiasymbol-findinlineelinesbyaddr.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in this symbol within the specified address range.| +|[`IDiaSymbol::findInlineeLinesByRVA`](../../debugger/debug-interface-access/idiasymbol-findinlineelinesbyrva.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in this symbol within the specified relative virtual address (RVA).| +|[`IDiaSymbol::findInlineeLinesByVA`](../../debugger/debug-interface-access/idiasymbol-findinlineelinesbyva.md)|Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in this symbol within the specified virtual address (VA).| +|[`IDiaSymbol::findInlineFramesByAddr`](../../debugger/debug-interface-access/idiasymbol-findinlineframesbyaddr.md)|Retrieves an enumeration that allows a client to iterate through all of the inline frames on a given address.| +|[`IDiaSymbol::findInlineFramesByRVA`](../../debugger/debug-interface-access/idiasymbol-findinlineframesbyrva.md)|Retrieves an enumeration that allows a client to iterate through all of the inline frames on a specified relative virtual address (RVA).| +|[`IDiaSymbol::findInlineFramesByVA`](../../debugger/debug-interface-access/idiasymbol-findinlineframesbyva.md)|Retrieves an enumeration that allows a client to iterate through all of the inline frames on a specified virtual address (VA).| +|[`IDiaSymbol::findInputAssemblyFile`](../../debugger/debug-interface-access/idiasymbol-findinputassemblyfile.md)|Retrieves the .NET Native input assembly file that is the parent of the symbol.| +|[`IDiaSymbol::findSymbolsByRVAForAcceleratorPointerTag`](../../debugger/debug-interface-access/idiasymbol-findsymbolsbyrvaforacceleratorpointertag.md)|Given a corresponding tag value, this method returns an enumeration of symbols that are contained in this stub function at a specified relative virtual address.| +|[`IDiaSymbol::findSymbolsForAcceleratorPointerTag`](../../debugger/debug-interface-access/idiasymbol-findsymbolsforacceleratorpointertag.md)|Returns the number of accelerator pointer tags in a C++ AMP stub function.| +|[`IDiaSymbol::get_acceleratorPointerTags`](../../debugger/debug-interface-access/idiasymbol-get-acceleratorpointertags.md)|Returns all accelerator pointer tag values that correspond to a C++ AMP accelerator stub function.| +|[`IDiaSymbol::get_access`](../../debugger/debug-interface-access/idiasymbol-get-access.md)|Retrieves the access modifier of a class member.| +|[`IDiaSymbol::get_addressOffset`](../../debugger/debug-interface-access/idiasymbol-get-addressoffset.md)|Retrieves the offset part of an address location.| +|[`IDiaSymbol::get_addressSection`](../../debugger/debug-interface-access/idiasymbol-get-addresssection.md)|Retrieves the section part of an address location.| +|[`IDiaSymbol::get_addressTaken`](../../debugger/debug-interface-access/idiasymbol-get-addresstaken.md)|Retrieves a flag indicating whether another symbol references this address.| +|[`IDiaSymbol::get_age`](../../debugger/debug-interface-access/idiasymbol-get-age.md)|Retrieves the age value of a program database.| +|[`IDiaSymbol::get_arrayIndexType`](../../debugger/debug-interface-access/idiasymbol-get-arrayindextype.md)|Retrieves the symbol identifier of the array index type.| +|[`IDiaSymbol::get_arrayIndexTypeId`](../../debugger/debug-interface-access/idiasymbol-get-arrayindextypeid.md)|Retrieves the array index type identifier of the symbol.| +|[`IDiaSymbol::get_backEndBuild`](../../debugger/debug-interface-access/idiasymbol-get-backendbuild.md)|Retrieves the back-end build number.| +|[`IDiaSymbol::get_backEndMajor`](../../debugger/debug-interface-access/idiasymbol-get-backendmajor.md)|Retrieves the back-end major version number.| +|[`IDiaSymbol::get_backEndMinor`](../../debugger/debug-interface-access/idiasymbol-get-backendminor.md)|Retrieves the back-end minor version number.| +|[`IDiaSymbol::get_backEndQFE`](../../debugger/debug-interface-access/idiasymbol-get-backendqfe.md)|Retrieves the back-end qfe number.| +|[`IDiaSymbol::get_baseDataOffset`](../../debugger/debug-interface-access/idiasymbol-get-basedataoffset.md)|Retrieves the base data offset.| +|[`IDiaSymbol::get_baseDataSlot`](../../debugger/debug-interface-access/idiasymbol-get-basedataslot.md)|Retrieves the base data slot.| +|[`IDiaSymbol::get_baseSymbol`](../../debugger/debug-interface-access/idiasymbol-get-basesymbol.md)|Retrieves the symbol from which the pointer is based.| +|[`IDiaSymbol::get_baseSymbolId`](../../debugger/debug-interface-access/idiasymbol-get-basesymbolid.md)|Retrieves the symbol ID from which the pointer is based.| +|[`IDiaSymbol::get_baseType`](../../debugger/debug-interface-access/idiasymbol-get-basetype.md)|Retrieves the type tag of a simple type.| +|[`IDiaSymbol::get_bindID`](../../debugger/debug-interface-access/idiasymbol-get-bindid.md)|Retrieves the binding register index.| +|[`IDiaSymbol::get_bindSlot`](../../debugger/debug-interface-access/idiasymbol-get-bindslot.md)|Retrieves the lower bound in binding space.| +|[`IDiaSymbol::get_bindSpace`](../../debugger/debug-interface-access/idiasymbol-get-bindspace.md)|Retrieves the binding space.| +|[`IDiaSymbol::get_bitPosition`](../../debugger/debug-interface-access/idiasymbol-get-bitposition.md)|Retrieves the bit position of a location.| +|[`IDiaSymbol::get_builtInKind`](../../debugger/debug-interface-access/idiasymbol-get-builtinkind.md)|Retrieves a built-in kind of the HLSL type.| +|[`IDiaSymbol::get_callingConvention`](../../debugger/debug-interface-access/idiasymbol-get-callingconvention.md)|Returns an indicator of a method's calling convention.| +|[`IDiaSymbol::get_characteristics`](../../debugger/debug-interface-access/idiasymbol-get-characteristics.md)|Retrieves the characteristics of this COFF section.| +|[`IDiaSymbol::get_classParent`](../../debugger/debug-interface-access/idiasymbol-get-classparent.md)|Retrieves a reference to the class parent of the symbol.| +|[`IDiaSymbol::get_classParentId`](../../debugger/debug-interface-access/idiasymbol-get-classparentid.md)|Retrieves the class parent identifier of the symbol.| +|[`IDiaSymbol::get_code`](../../debugger/debug-interface-access/idiasymbol-get-code.md)|Retrieves a flag indicating whether the symbol refers to a code address.| +|[`IDiaSymbol::get_coffGroup`](../../debugger/debug-interface-access/idiasymbol-get-coffgroup.md)|Retrieves the COFF group symbol this symbol comes from.| +|[`IDiaSymbol::get_compilerGenerated`](../../debugger/debug-interface-access/idiasymbol-get-compilergenerated.md)|Retrieves a flag indicating whether the symbol was compiler-generated.| +|[`IDiaSymbol::get_compilerName`](../../debugger/debug-interface-access/idiasymbol-get-compilername.md)|Retrieves the name of the compiler used to create the [Compiland](../../debugger/debug-interface-access/compiland.md).| +|[`IDiaSymbol::get_constantExport`](../../debugger/debug-interface-access/idiasymbol-get-constantexport.md)|Retrieves a flag indicating whether this export is CONSTANT.| +|[`IDiaSymbol::get_constructor`](../../debugger/debug-interface-access/idiasymbol-get-constructor.md)|Retrieves a flag indicating whether the user-defined data type has a constructor.| +|[`IDiaSymbol::get_constType`](../../debugger/debug-interface-access/idiasymbol-get-consttype.md)|Retrieves a flag indicating whether the user-defined data type is constant.| +|[`IDiaSymbol::get_container`](../../debugger/debug-interface-access/idiasymbol-get-container.md)|Retrieves the containing symbol of this symbol.| +|[`IDiaSymbol::get_count`](../../debugger/debug-interface-access/idiasymbol-get-count.md)|Retrieves the number of items in a list or array.| +|[`IDiaSymbol::get_countLiveRanges`](../../debugger/debug-interface-access/idiasymbol-get-countliveranges.md)|Retrieves the number of valid address ranges associated with the local symbol.| +|[`IDiaSymbol::get_customCallingConvention`](../../debugger/debug-interface-access/idiasymbol-get-customcallingconvention.md)|Retrieves a flag indicating whether the function uses a custom calling convention.| +|[`IDiaSymbol::get_dataBytes`](../../debugger/debug-interface-access/idiasymbol-get-databytes.md)|Retrieves the data bytes of an OEM symbol.| +|[`IDiaSymbol::get_dataExport`](../../debugger/debug-interface-access/idiasymbol-get-dataexport.md)|Retrieves a flag indicating whether this export is DATA.| +|[`IDiaSymbol::get_dataKind`](../../debugger/debug-interface-access/idiasymbol-get-datakind.md)|Retrieves the variable classification of a data symbol.| +|[`IDiaSymbol::get_editAndContinueEnabled`](../../debugger/debug-interface-access/idiasymbol-get-editandcontinueenabled.md)|Retrieves the flag describing the Edit and Continue features of the compiled program or unit.| +|[`IDiaSymbol::get_exceptionHandlerAddressOffset`](../../debugger/debug-interface-access/idiasymbol-get-exceptionhandleraddressoffset.md)|Retrieves the section offset of the exception handler.| +|[`IDiaSymbol::get_exceptionHandlerAddressSection`](../../debugger/debug-interface-access/idiasymbol-get-exceptionhandleraddresssection.md)|Retrieves the section number of the exception handler.| +|[`IDiaSymbol::get_exceptionHandlerRelativeVirtualAddress`](../../debugger/debug-interface-access/idiasymbol-get-exceptionhandlerrelativevirtualaddress.md)|Retrieves the relative virtual address of the exception handler.| +|[`IDiaSymbol::get_exceptionHandlerVirtualAddress`](../../debugger/debug-interface-access/idiasymbol-get-exceptionhandlervirtualaddress.md)|Retrieves the virtual address of the exception handler.| +|[`IDiaSymbol::get_exportHasExplicitlyAssignedOrdinal`](../../debugger/debug-interface-access/idiasymbol-get-exporthasexplicitlyassignedordinal.md)|Retrieves a flag indicating whether this export has an explicitly assigned ordinal.| +|[`IDiaSymbol::get_exportIsForwarder`](../../debugger/debug-interface-access/idiasymbol-get-exportisforwarder.md)|Retrieves a flag indicating whether this export is a forwarder.| +|[`IDiaSymbol::get_farReturn`](../../debugger/debug-interface-access/idiasymbol-get-farreturn.md)|Retrieves a flag indicating whether the function uses a far return.| +|[`IDiaSymbol::get_finalLiveStaticSize`](../../debugger/debug-interface-access/idiasymbol-get-finallivestaticsize.md)|Retrieves the final static size of live function, after inlining.| +|[`IDiaSymbol::get_framePointerPresent`](../../debugger/debug-interface-access/idiasymbol-get-framepointerpresent.md)|Retrieves a flag indicating whether this function has a frame pointer.| +|[`IDiaSymbol::get_frameSize`](../../debugger/debug-interface-access/idiasymbol-get-framesize.md)|Retrieves the frame size.| +|[`IDiaSymbol::get_frontEndBuild`](../../debugger/debug-interface-access/idiasymbol-get-frontendbuild.md)|Retrieves the front-end build number.| +|[`IDiaSymbol::get_frontEndMajor`](../../debugger/debug-interface-access/idiasymbol-get-frontendmajor.md)|Retrieves the front-end major version number.| +|[`IDiaSymbol::get_frontEndMinor`](../../debugger/debug-interface-access/idiasymbol-get-frontendminor.md)|Retrieves the front-end minor version number.| +|[`IDiaSymbol::get_frontEndQFE`](../../debugger/debug-interface-access/idiasymbol-get-frontendqfe.md)|Retrieves the front-end QFE version number.| +|[`IDiaSymbol::get_function`](../../debugger/debug-interface-access/idiasymbol-get-function.md)|Retrieves a flag indicating whether the public symbol refers to a function.| +|[`IDiaSymbol::get_guid`](../../debugger/debug-interface-access/idiasymbol-get-guid.md)|Retrieves the symbol's GUID.| +|[`IDiaSymbol::get_hasAlloca`](../../debugger/debug-interface-access/idiasymbol-get-hasalloca.md)|Retrieves a flag indicating whether the function contains a call to `alloca`.| +|[`IDiaSymbol::get_hasAssignmentOperator`](../../debugger/debug-interface-access/idiasymbol-get-hasassignmentoperator.md)|Retrieves a flag indicating whether the user-defined data type has any assignment operators defined.| +|[`IDiaSymbol::get_hasCastOperator`](../../debugger/debug-interface-access/idiasymbol-get-hascastoperator.md)|Retrieves a flag indicating whether the user-defined data type has any cast operators defined.| +|[`IDiaSymbol::get_hasControlFlowCheck`](../../debugger/debug-interface-access/idiasymbol-get-hascontrolflowcheck.md)|Retrieves a flag indicating whether this function contains control flow checks.| +|[`IDiaSymbol::get_hasDebugInfo`](../../debugger/debug-interface-access/idiasymbol-get-hasdebuginfo.md)|Retrieves a flag indicating whether the compiland contains any debugging information.| +|[`IDiaSymbol::get_hasEH`](../../debugger/debug-interface-access/idiasymbol-get-haseh.md)|Retrieves a flag indicating whether the function has a C++-style exception handler.| +|[`IDiaSymbol::get_hasEHa`](../../debugger/debug-interface-access/idiasymbol-get-haseha.md)|Retrieves a flag indicating whether the function has an asynchronous exception handler.| +|[`IDiaSymbol::get_hasInlAsm`](../../debugger/debug-interface-access/idiasymbol-get-hasinlasm.md)|Retrieves a flag indicating whether the function has inline assembly.| +|[`IDiaSymbol::get_hasLongJump`](../../debugger/debug-interface-access/idiasymbol-get-haslongjump.md)|Retrieves a flag indicating whether the function contains a longjmp command (part of C-style exception handling).| +|[`IDiaSymbol::get_hasManagedCode`](../../debugger/debug-interface-access/idiasymbol-get-hasmanagedcode.md)|Retrieves a flag indicating whether the module contains managed code.| +|[`IDiaSymbol::get_hasNestedTypes`](../../debugger/debug-interface-access/idiasymbol-get-hasnestedtypes.md)|Retrieves a flag indicating whether the user-defined data type has nested type definitions.| +|[`IDiaSymbol::get_hasSecurityChecks`](../../debugger/debug-interface-access/idiasymbol-get-hassecuritychecks.md)|Retrieves a flag indicating whether the function or compiland has security checks compiled in (via the [/GS (Buffer Security Check)](/cpp/build/reference/gs-buffer-security-check) compiler switch).| +|[`IDiaSymbol::get_hasSEH`](../../debugger/debug-interface-access/idiasymbol-get-hasseh.md)|Retrieves a flag indicating whether the function has Win32-style Structured Exception Handling.| +|[`IDiaSymbol::get_hasSetJump`](../../debugger/debug-interface-access/idiasymbol-get-hassetjump.md)|Retrieves a flag indicating whether the function contains a setjmp command.| +|[`IDiaSymbol::get_hasValidPGOCounts`](../../debugger/debug-interface-access/idiasymbol-get-hasvalidpgocounts.md)|Retrieves a flag indicating whether this symbols has valid PGO counts.| +|[`IDiaSymbol::get_hfaDouble`](../../debugger/debug-interface-access/idiasymbol-get-hfadouble.md)|Retrieves a flag that specifies whether a user-defined type (UDT) contains homogeneous floating-point aggregate (HFA) data of type double.| +|[`IDiaSymbol::get_hfaFloat`](../../debugger/debug-interface-access/idiasymbol-get-hfafloat.md)|Retrieves a flag that specifies whether a user-defined type (UDT) contains homogeneous floating-point aggregate (HFA) data of type float.| +|[`IDiaSymbol::get_indirectVirtualBaseClass`](../../debugger/debug-interface-access/idiasymbol-get-indirectvirtualbaseclass.md)|Retrieves a flag indicating whether the user-defined data type is an indirect virtual base class.| +|[`IDiaSymbol::get_InlSpec`](../../debugger/debug-interface-access/idiasymbol-get-inlspec.md)|Retrieves a flag indicating whether the function has been marked with the inline attribute.| +|[`IDiaSymbol::get_interruptReturn`](../../debugger/debug-interface-access/idiasymbol-get-interruptreturn.md)|Retrieves a flag indicating whether the function has a return from interrupt instruction.| +|[`IDiaSymbol::get_intrinsic`](../../debugger/debug-interface-access/idiasymbol-get-intrinsic.md)|Retrieves a flag that specifies whether a class is an intrinsic type.| +|[`IDiaSymbol::get_intro`](../../debugger/debug-interface-access/idiasymbol-get-intro.md)|Retrieves a flag indicating whether the function is the base class virtual function.| +|[`IDiaSymbol::get_isAcceleratorGroupSharedLocal`](../../debugger/debug-interface-access/idiasymbol-get-isacceleratorgroupsharedlocal.md)|Retrieves a flag that indicates whether the symbol corresponds to a group shared local variable in code compiled for a C++ AMP Accelerator.| +|[`IDiaSymbol::get_isAcceleratorPointerTagLiveRange`](../../debugger/debug-interface-access/idiasymbol-get-isacceleratorpointertagliverange.md)|Retrieves a flag that indicates whether the symbol corresponds to the *definition range symbol* for the tag component of a pointer variable in code compiled for a C++ AMP Accelerator. The definition range symbol is the location of a variable for a span of addresses.| +|[`IDiaSymbol::get_isAcceleratorStubFunction`](../../debugger/debug-interface-access/idiasymbol-get-isacceleratorstubfunction.md)|Indicates whether the symbol corresponds to a top-level function symbol for a shader compiled for an accelerator that corresponds to a `parallel_for_each` call.| +|[`IDiaSymbol::get_isAggregated`](../../debugger/debug-interface-access/idiasymbol-get-isaggregated.md)|Retrieves a flag indicating whether the data is part of an aggregate of many symbols.| +|[`IDiaSymbol::get_isConstructorVirtualBase`](../../debugger/debug-interface-access/idiasymbol-get-isconstructorvirtualbase.md)|Retrieves a flag indicating whether this is an instance constructor of a class with virtual base.| +|[`IDiaSymbol::get_isCTypes`](../../debugger/debug-interface-access/idiasymbol-get-isctypes.md)|Retrieves a flag indicating whether the symbol file contains C types.| +|[`IDiaSymbol::get_isCVTCIL`](../../debugger/debug-interface-access/idiasymbol-get-iscvtcil.md)|Retrieves a flag indicating whether the module was converted from Common Intermediate Language (CIL) to native code.| +|[`IDiaSymbol::get_isCxxReturnUdt`](../../debugger/debug-interface-access/idiasymbol-get-iscxxreturnudt.md)|Retrieves a flag indicating whether return C++ style UDT.| +|[`IDiaSymbol::get_isDataAligned`](../../debugger/debug-interface-access/idiasymbol-get-isdataaligned.md)|Retrieves a flag indicating whether the elements of a user-defined data type are aligned to a specific boundary.| +|[`IDiaSymbol::get_isHLSLData`](../../debugger/debug-interface-access/idiasymbol-get-ishlsldata.md)|Specifies whether this symbol represents High Level Shader Language (HLSL) data.| +|[`IDiaSymbol::get_isHotpatchable`](../../debugger/debug-interface-access/idiasymbol-get-ishotpatchable.md)|Retrieves a flag indicating whether the module was compiled with the [/hotpatch (Create Hotpatchable Image)](/cpp/build/reference/hotpatch-create-hotpatchable-image) compiler switch.| +|[`IDiaSymbol::get_isInterfaceUdt`](../../debugger/debug-interface-access/idiasymbol-get-isinterfaceudt.md)|Retrieves a flag indicating whether the type is a WinRT interface user-defined type (UDT).| +|[`IDiaSymbol::get_isLocationControlFlowDependent`](../../debugger/debug-interface-access/idiasymbol-get-islocationcontrolflowdependent.md)|Retrieves a flag indicating whether a local symbol's location liveness is dependent upon the control flow of the function.| +|[`IDiaSymbol::get_isLTCG`](../../debugger/debug-interface-access/idiasymbol-get-isltcg.md)|Retrieves a flag indicating whether the managed compiland was linked with the linker's LTCG.| +|[`IDiaSymbol::get_isMatrixRowMajor`](../../debugger/debug-interface-access/idiasymbol-get-ismatrixrowmajor.md)|Specifies whether the matrix is row major.| +|[`IDiaSymbol::get_isMSILNetmodule`](../../debugger/debug-interface-access/idiasymbol-get-ismsilnetmodule.md)|Retrieves a flag indicating whether the managed compiland is a .netmodule (containing only metadata).| +|[`IDiaSymbol::get_isMultipleInheritance`](../../debugger/debug-interface-access/idiasymbol-get-ismultipleinheritance.md)|Specifies whether the `this` pointer points to a data member with multiple inheritance.| +|[`IDiaSymbol::get_isNaked`](../../debugger/debug-interface-access/idiasymbol-get-isnaked.md)|Retrieves a flag indicating whether the function has the [naked](/cpp/cpp/naked-cpp) attribute.| +|[`IDiaSymbol::get_isOptimizedAway`](../../debugger/debug-interface-access/idiasymbol-get-isoptimizedaway.md)|Specifies whether the variable is optimized away.| +|[`IDiaSymbol::get_isOptimizedForSpeed`](../../debugger/debug-interface-access/idiasymbol-get-isoptimizedforspeed.md)|Retrieves a flag indicating whether the function is optimized for speed.| +|[`IDiaSymbol::get_isPGO`](../../debugger/debug-interface-access/idiasymbol-get-ispgo.md)|Retrieves a flag indicating whether PGO was enabled.| +|[`IDiaSymbol::get_isPointerBasedOnSymbolValue`](../../debugger/debug-interface-access/idiasymbol-get-ispointerbasedonsymbolvalue.md)|Specifies whether the `this` pointer is based on a symbol value.| +|[`IDiaSymbol::get_isPointerToDataMember`](../../debugger/debug-interface-access/idiasymbol-get-ispointertodatamember.md)|Specifies whether this symbol is a pointer to a data member.| +|[`IDiaSymbol::get_isPointerToMemberFunction`](../../debugger/debug-interface-access/idiasymbol-get-ispointertomemberfunction.md)|Specifies whether this symbol is a pointer to a member function.| +|[`IDiaSymbol::get_isRefUdt`](../../debugger/debug-interface-access/idiasymbol-get-isrefudt.md)|Retrieves a flag indicating whether this is a WinRT reference user-defined type (UDT).| +|[`IDiaSymbol::get_isReturnValue`](../../debugger/debug-interface-access/idiasymbol-get-isreturnvalue.md)|Specifies whether the variable carries a return value.| +|[`IDiaSymbol::get_isSafeBuffers`](../../debugger/debug-interface-access/idiasymbol-get-issafebuffers.md)|Retrieves a flag that specifies whether the preprocesser directive for a safe buffer is used.| +|[`IDiaSymbol::get_isSdl`](../../debugger/debug-interface-access/idiasymbol-get-issdl.md)|Specifies whether the module is compiled with the /SDL option.| +|[`IDiaSymbol::get_isSingleInheritance`](../../debugger/debug-interface-access/idiasymbol-get-issingleinheritance.md)|Specifies whether the `this` pointer points to a data member with single inheritance.| +|[`IDiaSymbol::get_isSplitted`](../../debugger/debug-interface-access/idiasymbol-get-issplitted.md)|Retrieves a flag indicating whether the data has been split into an aggregate of separate symbols.| +|[`IDiaSymbol::get_isStatic`](../../debugger/debug-interface-access/idiasymbol-get-isstatic.md)|Retrieves a flag indicating whether a function or thunk layer is static.| +|[`IDiaSymbol::get_isStripped`](../../debugger/debug-interface-access/idiasymbol-get-isstripped.md)|Retrieves a flag indicating whether private symbols have been stripped from the symbol file.| +|[`IDiaSymbol::get_isValueUdt`](../../debugger/debug-interface-access/idiasymbol-get-isvalueudt.md)|Retrieves a flag indicating whether this is a WinRT value user-defined type (UDT).| +|[`IDiaSymbol::get_isVirtualInheritance`](../../debugger/debug-interface-access/idiasymbol-get-isvirtualinheritance.md)|Specifies whether the `this` pointer points to a data member with virtual inheritance.| +|[`IDiaSymbol::get_isWinRTPointer`](../../debugger/debug-interface-access/idiasymbol-get-iswinrtpointer.md)|Retrieves a flag indicating whether this is a WinRT pointer type.| +|[`IDiaSymbol::get_language`](../../debugger/debug-interface-access/idiasymbol-get-language.md)|Retrieves the language of the source.| +|[`IDiaSymbol::get_length`](../../debugger/debug-interface-access/idiasymbol-get-length.md)|Retrieves the number of bytes of memory used by the object represented by this symbol.| +|[`IDiaSymbol::get_lexicalParent`](../../debugger/debug-interface-access/idiasymbol-get-lexicalparent.md)|Retrieves a reference to the lexical parent of the symbol.| +|[`IDiaSymbol::get_lexicalParentId`](../../debugger/debug-interface-access/idiasymbol-get-lexicalparentid.md)|Retrieves the lexical parent identifier of the symbol.| +|[`IDiaSymbol::get_libraryName`](../../debugger/debug-interface-access/idiasymbol-get-libraryname.md)|Retrieves the file name of the library or object file from which the object was loaded.| +|[`IDiaSymbol::get_liveRangeLength`](../../debugger/debug-interface-access/idiasymbol-get-liverangelength.md)|Returns the length of the address range in which the local symbol is valid.| +|[`IDiaSymbol::get_liveRangeStartAddressOffset`](../../debugger/debug-interface-access/idiasymbol-get-liverangestartaddressoffset.md)|Returns the offset part of the starting address range in which the local symbol is valid.| +|[`IDiaSymbol::get_liveRangeStartAddressSection`](../../debugger/debug-interface-access/idiasymbol-get-liverangestartaddresssection.md)|Returns the section part of the starting address range in which the local symbol is valid.| +|[`IDiaSymbol::get_liveRangeStartRelativeVirtualAddress`](../../debugger/debug-interface-access/idiasymbol-get-liverangestartrelativevirtualaddress.md)|Returns the start of the address range in which the local symbol is valid.| +|[`IDiaSymbol::get_localBasePointerRegisterId`](../../debugger/debug-interface-access/idiasymbol-get-localbasepointerregisterid.md)|Retrieves the register designator of the register holding base pointer to locals.| +|[`IDiaSymbol::get_locationType`](../../debugger/debug-interface-access/idiasymbol-get-locationtype.md)|Retrieves the location type of a data symbol.| +|[`IDiaSymbol::get_lowerBound`](../../debugger/debug-interface-access/idiasymbol-get-lowerbound.md)|Retrieves the lower bound of a FORTRAN array dimension.| +|[`IDiaSymbol::get_lowerBoundId`](../../debugger/debug-interface-access/idiasymbol-get-lowerboundid.md)|Retrieves the symbol identifier of the lower bound of a FORTRAN array dimension.| +|[`IDiaSymbol::get_machineType`](../../debugger/debug-interface-access/idiasymbol-get-machinetype.md)|Retrieves the type of the target CPU.| +|[`IDiaSymbol::get_managed`](../../debugger/debug-interface-access/idiasymbol-get-managed.md)|Retrieves a flag that indicating whether the symbol refers to managed code.| +|[`IDiaSymbol::get_memorySpaceKind`](../../debugger/debug-interface-access/idiasymbol-get-memoryspacekind.md)|Retrieves the memory space kind.| +|[`IDiaSymbol::get_modifierValues`](../../debugger/debug-interface-access/idiasymbol-get-modifiervalues.md)|Retrieves the set of modifers for this symbol.| +|[`IDiaSymbol::get_msil`](../../debugger/debug-interface-access/idiasymbol-get-msil.md)|Retrieves a flag indicating whether the symbol refers to Microsoft Intermediate Language (MSIL) code.| +|[`IDiaSymbol::get_name`](../../debugger/debug-interface-access/idiasymbol-get-name.md)|Retrieves the name of the symbol.| +|[`IDiaSymbol::get_nested`](../../debugger/debug-interface-access/idiasymbol-get-nested.md)|Retrieves a flag indicating whether the user-defined data type is nested.| +|[`IDiaSymbol::get_noInline`](../../debugger/debug-interface-access/idiasymbol-get-noinline.md)|Retrieves a flag indicating whether the function is marked with the [`noinline`](/cpp/cpp/noinline) attribute.| +|[`IDiaSymbol::get_noNameExport`](../../debugger/debug-interface-access/idiasymbol-get-nonameexport.md)|Retrieves a flag indicating whether this export is `NONAME`.| +|[`IDiaSymbol::get_noReturn`](../../debugger/debug-interface-access/idiasymbol-get-noreturn.md)|Retrieves a flag indicating whether the function has been declared with the [noreturn](/cpp/cpp/noreturn) attribute.| +|[`IDiaSymbol::get_noStackOrdering`](../../debugger/debug-interface-access/idiasymbol-get-nostackordering.md)|Retrieves a flag indicating whether no stack ordering could be done as part of stack buffer checking.| +|[`IDiaSymbol::get_notReached`](../../debugger/debug-interface-access/idiasymbol-get-notreached.md)|Retrieves a flag indicating whether the function or label is never reached.| +|[`IDiaSymbol::get_numberOfAcceleratorPointerTags`](../../debugger/debug-interface-access/idiasymbol-get-numberofacceleratorpointertags.md)|Returns the number of accelerator pointer tags in a C++ AMP stub function.| +|[`IDiaSymbol::get_numberOfColumns`](../../debugger/debug-interface-access/idiasymbol-get-numberofcolumns.md)|Retrieves the number of columns in the matrix.| +|[`IDiaSymbol::get_numberOfModifiers`](../../debugger/debug-interface-access/idiasymbol-get-numberofmodifiers.md)|Retrieves the number of modifiers that are applied to the original type.| +|[`IDiaSymbol::get_numberOfRegisterIndices`](../../debugger/debug-interface-access/idiasymbol-get-numberofregisterindices.md)|Retrieves the number of register indices.| +|[`IDiaSymbol::get_numberOfRows`](../../debugger/debug-interface-access/idiasymbol-get-numberofrows.md)|Retrieves the number of rows in the matrix.| +|[`IDiaSymbol::get_numericProperties`](../../debugger/debug-interface-access/idiasymbol-get-numericproperties.md)|Retrieves the set of numeric properties for this symbol.| +|[`IDiaSymbol::get_objectFileName`](../../debugger/debug-interface-access/idiasymbol-get-objectfilename.md)|Retrieves the object file name.| +|[`IDiaSymbol::get_objectPointerType`](../../debugger/debug-interface-access/idiasymbol-get-objectpointertype.md)|Retrieves the type of the object pointer for a class method.| +|[`IDiaSymbol::get_oemId`](../../debugger/debug-interface-access/idiasymbol-get-oemid.md)|Retrieves the symbol's `oemId` value.| +|[`IDiaSymbol::get_oemSymbolId`](../../debugger/debug-interface-access/idiasymbol-get-oemsymbolid.md)|Retrieves the symbol's `oemSymbolId` value.| +|[`IDiaSymbol::get_offset`](../../debugger/debug-interface-access/idiasymbol-get-offset.md)|Retrieves the offset of the symbol location.| +|[`IDiaSymbol::get_offsetInUdt`](../../debugger/debug-interface-access/idiasymbol-get-offsetinudt.md)|Retrieves the field offset of this symbol withinthe outer user-defined type (UDT).| +|[`IDiaSymbol::get_optimizedCodeDebugInfo`](../../debugger/debug-interface-access/idiasymbol-get-optimizedcodedebuginfo.md)|Retrieves a flag indicating whether the function or label contains optimized code as well as debug information.| +|[`IDiaSymbol::get_ordinal`](../../debugger/debug-interface-access/idiasymbol-get-ordinal.md)|Retrieves the ordinal of this export.| +|[`IDiaSymbol::get_overloadedOperator`](../../debugger/debug-interface-access/idiasymbol-get-overloadedoperator.md)|Retrieves a flag indicating whether the user-defined data type has overloaded operators.| +|[`IDiaSymbol::get_packed`](../../debugger/debug-interface-access/idiasymbol-get-packed.md)|Retrieves a flag indicating whether the user-defined data type is packed.| +|[`IDiaSymbol::get_paramBasePointerRegisterId`](../../debugger/debug-interface-access/idiasymbol-get-parambasepointerregisterid.md)|Retrieves the register designator of the register holding the base pointer to parameters.| +|[`IDiaSymbol::get_PGODynamicInstructionCount`](../../debugger/debug-interface-access/idiasymbol-get-pgodynamicinstructioncount.md)|Retrieves the dynamic instruction count calculated by training.| +|[`IDiaSymbol::get_PGOEdgeCount`](../../debugger/debug-interface-access/idiasymbol-get-pgoedgecount.md)|Retrieves the edge count between a caller/callee and it's parent.| +|[`IDiaSymbol::get_PGOEntryCount`](../../debugger/debug-interface-access/idiasymbol-get-pgoentrycount.md)|Retrieves the total invocation count in PGO training.| +|[`IDiaSymbol::get_phaseName`](../../debugger/debug-interface-access/idiasymbol-get-phasename.md)|Retrieves the phase this function is a member of for PGO multiphased builds.| +|[`IDiaSymbol::get_platform`](../../debugger/debug-interface-access/idiasymbol-get-platform.md)|Retrieves the platform type for which the program or compiland was compiled.| +|[`IDiaSymbol::get_privateExport`](../../debugger/debug-interface-access/idiasymbol-get-privatexport.md)|Retrieves a flag indicating whether this export is `PRIVATE`.| +|[`IDiaSymbol::get_pure`](../../debugger/debug-interface-access/idiasymbol-get-pure.md)|Retrieves a flag that indicating whether the function is pure virtual.| +|[`IDiaSymbol::get_rank`](../../debugger/debug-interface-access/idiasymbol-get-rank.md)|Retrieves the rank of a FORTRAN multidimensional array.| +|[`IDiaSymbol::get_reference`](../../debugger/debug-interface-access/idiasymbol-get-reference.md)|Retrieves a flag indicating whether a pointer type is a reference.| +|[`IDiaSymbol::get_registerId`](../../debugger/debug-interface-access/idiasymbol-get-registerid.md)|Retrieves the register designator of the location.| +|[`IDiaSymbol::get_registerType`](../../debugger/debug-interface-access/idiasymbol-get-registertype.md)|Retrieves the register type.| +|[`IDiaSymbol::get_relativeVirtualAddress`](../../debugger/debug-interface-access/idiasymbol-get-relativevirtualaddress.md)|Retrieves the relative virtual address (RVA) of the location.| +|[`IDiaSymbol::get_restrictedType`](../../debugger/debug-interface-access/idiasymbol-get-restrictedtype.md)|Specifies whether the `this` pointer is flagged as restricted.| +|[`IDiaSymbol::get_RValueReference`](../../debugger/debug-interface-access/idiasymbol-get-rvaluereference.md)|Retrieves a flag that specifies whether a pointer type is an rvalue reference.| +|[`IDiaSymbol::get_samplerSlot`](../../debugger/debug-interface-access/idiasymbol-get-samplerslot.md)|Retrieves the sampler slot.| +|[`IDiaSymbol::get_scoped`](../../debugger/debug-interface-access/idiasymbol-get-scoped.md)|Retrieves a flag indicating whether the user-defined data type appears in a nonglobal lexical scope.| +|[`IDiaSymbol::get_sealed`](../../debugger/debug-interface-access/idiasymbol-get-sealed.md)|Retrieves a flag that specifies whether the class or method is sealed.| +|[`IDiaSymbol::get_signature`](../../debugger/debug-interface-access/idiasymbol-get-signature.md)|Retrieves the symbol's signature value.| +|[`IDiaSymbol::get_sizeInUdt`](../../debugger/debug-interface-access/idiasymbol-get-sizeinudt.md)|Retrieves the size of a member of a user-defined type.| +|[`IDiaSymbol::get_slot`](../../debugger/debug-interface-access/idiasymbol-get-slot.md)|Retrieves the slot number of the location.| +|[`IDiaSymbol::get_sourceFileName`](../../debugger/debug-interface-access/idiasymbol-get-sourcefilename.md)|Retrieves the file name of the source file.| +|[`IDiaSymbol::get_staticSize`](../../debugger/debug-interface-access/idiasymbol-get-staticsize.md)|Retrieves the static instruction count.| +|[`IDiaSymbol::get_strictGSCheck`](../../debugger/debug-interface-access/idiasymbol-get-strictgscheck.md)|Retrieves a flag indicating whether this function was compiled with [`strict_gs_check` pragma](/cpp/preprocessor/strict-gs-check) enabled.| +|[`IDiaSymbol::get_stride`](../../debugger/debug-interface-access/idiasymbol-get-stride.md)|Retrieves the stride of the matrix or strided array.| +|[`IDiaSymbol::get_subType`](../../debugger/debug-interface-access/idiasymbol-get-subtype.md)|Retrieves the sub type.| +|[`IDiaSymbol::get_subTypeId`](../../debugger/debug-interface-access/idiasymbol-get-subtypeid.md)|Retrieves the sub type ID.| +|[`IDiaSymbol::get_symbolsFileName`](../../debugger/debug-interface-access/idiasymbol-get-symbolsfilename.md)|Retrieves the name of the file from which the symbols were loaded.| +|[`IDiaSymbol::get_symIndexId`](../../debugger/debug-interface-access/idiasymbol-get-symindexid.md)|Retrieves the unique symbol identifier.| +|[`IDiaSymbol::get_symTag`](../../debugger/debug-interface-access/idiasymbol-get-symtag.md)|Retrieves the symbol type classifier.| +|[`IDiaSymbol::get_targetOffset`](../../debugger/debug-interface-access/idiasymbol-get-targetoffset.md)|Retrieves the offset section of a thunk target.| +|[`IDiaSymbol::get_targetRelativeVirtualAddress`](../../debugger/debug-interface-access/idiasymbol-get-targetrelativevirtualaddress.md)|Retrieves the relative virtual address (RVA) of a thunk target.| +|[`IDiaSymbol::get_targetSection`](../../debugger/debug-interface-access/idiasymbol-get-targetsection.md)|Retrieves the address section of a thunk target.| +|[`IDiaSymbol::get_targetVirtualAddress`](../../debugger/debug-interface-access/idiasymbol-get-targetvirtualaddress.md)|Retrieves the virtual address (VA) of a thunk target.| +|[`IDiaSymbol::get_textureSlot`](../../debugger/debug-interface-access/idiasymbol-get-textureslot.md)|Retrieves the texture slot.| +|[`IDiaSymbol::get_thisAdjust`](../../debugger/debug-interface-access/idiasymbol-get-thisadjust.md)|Retrieves the logical `this` adjustor for the method.| +|[`IDiaSymbol::get_thunkOrdinal`](../../debugger/debug-interface-access/idiasymbol-get-thunkordinal.md)|Retrieves the thunk type of a function.| +|[`IDiaSymbol::get_timeStamp`](../../debugger/debug-interface-access/idiasymbol-get-timestamp.md)|Retrieves the timestamp of the underlying executable file.| +|[`IDiaSymbol::get_token`](../../debugger/debug-interface-access/idiasymbol-get-token.md)|Retrieves the metadata token of a managed function or variable.| +|[`IDiaSymbol::get_type`](../../debugger/debug-interface-access/idiasymbol-get-type.md)|Retrieves a reference to the function signature.| +|[`IDiaSymbol::get_typeId`](../../debugger/debug-interface-access/idiasymbol-get-typeid.md)|Retrieves the type identifier of the symbol.| +|[`IDiaSymbol::get_typeIds`](../../debugger/debug-interface-access/idiasymbol-get-typeids.md)|Retrieves an array of compiler-specific type identifier values for this symbol.| +|[`IDiaSymbol::get_types`](../../debugger/debug-interface-access/idiasymbol-get-types.md)|Retrieves an array of compiler-specific type values for this symbol.| +|[`IDiaSymbol::get_uavSlot`](../../debugger/debug-interface-access/idiasymbol-get-uavslot.md)|Retrieves the uav slot.| +|[`IDiaSymbol::get_udtKind`](../../debugger/debug-interface-access/idiasymbol-get-udtkind.md)|Retrieves the variety of a user-defined type (UDT).| +|[`IDiaSymbol::get_unalignedType`](../../debugger/debug-interface-access/idiasymbol-get-unalignedtype.md)|Retrieves a flag indicating whether the user-defined data type is unaligned.| +|[`IDiaSymbol::get_undecoratedName`](../../debugger/debug-interface-access/idiasymbol-get-undecoratedname.md)|Retrieves the undecorated name for a C++ decorated, or linkage, name.| +|[`IDiaSymbol::get_undecoratedNameEx`](../../debugger/debug-interface-access/idiasymbol-get-undecoratednameex.md)|Extension of the `get_undecoratedName` method that retrieves the undecorated name based on the value of an extension field.| +|[`IDiaSymbol::get_unmodifiedType`](../../debugger/debug-interface-access/idiasymbol-get-unmodifiedtype.md)|Retrieves the original (unmodifed) type of this symbol.| +|[`IDiaSymbol::get_unmodifiedTypeId`](../../debugger/debug-interface-access/idiasymbol-get-unmodifiedtypeid.md)|Retrieves the ID of the original (unmodified) type.| +|[`IDiaSymbol::get_unused`](../../debugger/debug-interface-access/idiasymbol-get-unused.md)|Deprecated function.| +|[`IDiaSymbol::get_upperBound`](../../debugger/debug-interface-access/idiasymbol-get-upperbound.md)|Retrieves the upper bound of a FORTRAN array dimension.| +|[`IDiaSymbol::get_upperBoundId`](../../debugger/debug-interface-access/idiasymbol-get-upperboundid.md)|Retrieves the symbol identifier of the upper bound of a FORTRAN array dimension.| +|[`IDiaSymbol::get_value`](../../debugger/debug-interface-access/idiasymbol-get-value.md)|Retrieves the value of a constant.| +|[`IDiaSymbol::get_virtual`](../../debugger/debug-interface-access/idiasymbol-get-virtual.md)|Retrieves a flag indicating whether the function is virtual.| +|[`IDiaSymbol::get_virtualAddress`](../../debugger/debug-interface-access/idiasymbol-get-virtualaddress.md)|Retrieves the virtual address (VA) of the location.| +|[`IDiaSymbol::get_virtualBaseClass`](../../debugger/debug-interface-access/idiasymbol-get-virtualbaseclass.md)|Retrieves a flag indicating whether the user-defined data type is a virtual base class.| +|[`IDiaSymbol::get_virtualBaseDispIndex`](../../debugger/debug-interface-access/idiasymbol-get-virtualbasedispindex.md)|Retrieves the index to the virtual base displacement table.| +|[`IDiaSymbol::get_virtualBaseOffset`](../../debugger/debug-interface-access/idiasymbol-get-virtualbaseoffset.md)|Retrieves the offset in the virtual function table of a virtual function.| +|[`IDiaSymbol::get_virtualBasePointerOffset`](../../debugger/debug-interface-access/idiasymbol-get-virtualbasepointeroffset.md)|Retrieves the offset of the virtual base pointer.| +|[`IDiaSymbol::get_virtualBaseTableType`](../../debugger/debug-interface-access/idiasymbol-get-virtualbasetabletype.md)|Retrieves the type of a virtual base table pointer.| +|[`IDiaSymbol::get_virtualTableShape`](../../debugger/debug-interface-access/idiasymbol-get-virtualtableshape.md)|Retrieves the symbol interface of the type of the virtual table for a user-defined type.| +|[`IDiaSymbol::get_virtualTableShapeId`](../../debugger/debug-interface-access/idiasymbol-get-virtualtableshapeid.md)|Retrieves the virtual table shape identifier of the symbol.| +|[`IDiaSymbol::get_volatileType`](../../debugger/debug-interface-access/idiasymbol-get-volatiletype.md)|Retrieves a flag indicating whether the user-defined data type is volatile.| +|[`IDiaSymbol::get_wasInlined`](../../debugger/debug-interface-access/idiasymbol-get-wasinlined.md)|Retrieves a flag indicating whether this function symbol was inlined into another function.| +|[`IDiaSymbol::getSrcLineOnTypeDefn`](../../debugger/debug-interface-access/idiasymbol-getsrclineontypedefn.md)|Retrieves the source file and line number that indicate where a specified user-defined type is defined.| ## Remarks ## Notes for Callers + Obtain this interface by calling one of the following methods: - [IDiaEnumSymbols::Item](../../debugger/debug-interface-access/idiaenumsymbols-item.md) @@ -252,6 +307,7 @@ Obtain this interface by calling one of the following methods: - [IDiaSymbol::get_types](../../debugger/debug-interface-access/idiasymbol-get-types.md) ## Example + This example shows how to display the local variables for a function at a given relative virtual address. It also shows how symbols of different types are related to each other. > [!NOTE] @@ -330,13 +386,15 @@ void DumpLocalVars( DWORD rva, IDiaSession *pSession ) ``` ## Requirements + `Header:` Dia2.h Library: diaguids.lib -DLL: msdia80.dll +DLL: msdia140.dll ## See also + - [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) - [IDiaEnumSymbolsByAddr](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr.md) - [IDiaEnumSymbols](../../debugger/debug-interface-access/idiaenumsymbols.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol10-get-sourcelink.md b/docs/debugger/debug-interface-access/idiasymbol10-get-sourcelink.md new file mode 100644 index 00000000000..aea191c30b6 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol10-get-sourcelink.md @@ -0,0 +1,53 @@ +--- +description: "Retreives the Source Link blob associated with this SymTagCompiland symbol." +title: "IDiaSymbol10::get_sourceLink" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol10::get_sourceLink method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol10::get_sourceLink + +Retreives the [Source Link](https://github.com/dotnet/designs/blob/master/accepted/2020/diagnostics/source-link.md) blob associated with this `SymTagCompiland` symbol. + +## Syntax + +```C++ +HRESULT get_sourceLink( + DWORD cb, + DWORD *pcb, + BYTE *pb +); +``` + +#### Parameters + + `cb` + +[in] The size in bytes of the optional buffer pointed to by `pb` parameter. + + `pcb` + +[out, optional] If `pb` is `nullptr` and `cb` is 0, this parameter is required, and returns the size in bytes needed to contain the entire source link blob. Otherwise it returns the number of bytes written to the `pb` buffer upon success. + + `pb` + +[out, optional] Returns the source link information blob. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol10`](../../debugger/debug-interface-access/idiasymbol10.md) +- [Using Source Link](https://github.com/dotnet/sourcelink#using-source-link-in-c-projects) diff --git a/docs/debugger/debug-interface-access/idiasymbol10.md b/docs/debugger/debug-interface-access/idiasymbol10.md new file mode 100644 index 00000000000..e0b847a61a6 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol10.md @@ -0,0 +1,64 @@ +--- +description: "Describes additional properties of a symbol instance relating to source links." +title: "IDiaSymbol10" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol10 interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol10 + +Describes additional properties of a symbol instance. + +## Syntax + +``` +IDiaSymbol10 : IDiaSymbol9 +``` + +## Methods + +The following table shows the methods of `IDiaSymbol10`. + +> [!NOTE] +> Symbols will return meaningful data for only some of these methods, depending on the type of symbol. If a method returns `S_OK`, then that method has returned meaningful data. + +|Method|Description| +|------------|-----------------| +|[`IDiaSymbol10::get_sourceLink`](../../debugger/debug-interface-access/idiasymbol10-get-sourcelink.md)|Retreives the [Source Link](https://github.com/dotnet/designs/blob/master/accepted/2020/diagnostics/source-link.md) blob associated with this `SymTagCompiland` symbol.| + +## Remarks + +## Notes for Callers + +Obtain this interface by first getting an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) instance and then calling [`IUnknown::QueryInterface`](/windows/win32/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) to do a dynamic downcast. + +## Requirements + +`Header:` Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) +- [`IDiaSymbol3`](../../debugger/debug-interface-access/idiasymbol3.md) +- [`IDiaSymbol4`](../../debugger/debug-interface-access/idiasymbol4.md) +- [`IDiaSymbol5`](../../debugger/debug-interface-access/idiasymbol5.md) +- [`IDiaSymbol6`](../../debugger/debug-interface-access/idiasymbol6.md) +- [`IDiaSymbol7`](../../debugger/debug-interface-access/idiasymbol7.md) +- [`IDiaSymbol8`](../../debugger/debug-interface-access/idiasymbol7.md) +- [`IDiaSymbol9`](../../debugger/debug-interface-access/idiasymbol9.md) +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [Symbols and Symbol Tags](../../debugger/debug-interface-access/symbols-and-symbol-tags.md) +- [Compiland](../../debugger/debug-interface-access/compiland.md) +- [Using Source Link](https://github.com/dotnet/sourcelink#using-source-link-in-c-projects) diff --git a/docs/debugger/debug-interface-access/idiasymbol11-get-discriminateduniontag.md b/docs/debugger/debug-interface-access/idiasymbol11-get-discriminateduniontag.md new file mode 100644 index 00000000000..8eddb294975 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol11-get-discriminateduniontag.md @@ -0,0 +1,53 @@ +--- +description: "Retrieves information about the tag of a discriminated union symbol instance." +title: "IDiaSymbol11::get_discriminatedUnionTag" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol11::get_discriminatedUnionTag method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol11::get_discriminatedUnionTag + +Retrieves information about the tag of a discriminated union symbol instance. + +## Syntax + +```C++ +HRESULT get_discriminatedUnionTag( + IDiaSymbol **ppTagType, + DWORD *pTagOffset, + DiaTagValue *pTagMask +); +``` + +#### Parameters + + `ppTagType` + +[out] Returns the [`IDiaSymbol`](../../debugger//debug-interface-access/idiasymbol.md) that represents the type of the tag member. + + `pTagOffset` + +[out] Returns the byte offset within the parent structure of where the start of the tag member is located. + + `pTagMask` + +[out] Returns a mask value if the tag does not fill all the bytes of the tag member; otherwise returns an empty [`DiaTagValue`](../../debugger/debug-interface-access/diatagvalue.md) with the `valueSizeBytes` set to 0. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol11`](../../debugger/debug-interface-access/idiasymbol11.md) +- [`DiaTagValue`](../../debugger/debug-interface-access/diatagvalue.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol11-get-tagranges.md b/docs/debugger/debug-interface-access/idiasymbol11-get-tagranges.md new file mode 100644 index 00000000000..a077d6e3c23 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol11-get-tagranges.md @@ -0,0 +1,57 @@ +--- +description: "Retrieves the ranges of tags within a discriminated union symbol instance." +title: "IDiaSymbol11::get_tagRanges" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol11::get_tagRanges method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol11::get_tagRanges + +Retrieves the ranges of tags within a discriminated union symbol instance. + +## Syntax + +```C++ +HRESULT get_tagRanges( + DWORD count, + DWORD *pcRangeValues, + DiaTagValue *rangeValues +); +``` + +#### Parameters + + `count` + +[in] Specifies the count of valid [`DiaTagValue`](../../debugger/debug-interface-access/diatagvalue.md) elements pointed to by the `rangeValues` parameter. + + `pcRangeValues` + +[out] Returns the count of [`DiaTagValue`](../../debugger/debug-interface-access/diatagvalue.md) elements needed if `rangeValues` is `nullptr`; otherwise returns the count of elements used. + + `rangeValues` + +[out] Returns an array of [`DiaTagValue`](../../debugger/debug-interface-access/diatagvalue.md). On input the count of valid elements is specified by the `count` parameter. Upon return `*pcRangeValues` is the count of valid elements that were filled in. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## Remarks + +The first array element (`rangeValues[0]`) represents the lower bound of the range. The next array element represents the upper bound of the range. The array continues to alternate between lower and upper bounds of each subsequent range. Both upper and lower bounds are inclusive. + +## See also + +- [`IDiaSymbol11`](../../debugger/debug-interface-access/idiasymbol11.md) +- [`DiaTagValue`](../../debugger/debug-interface-access/diatagvalue.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol11.md b/docs/debugger/debug-interface-access/idiasymbol11.md new file mode 100644 index 00000000000..fedd2d3935f --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol11.md @@ -0,0 +1,66 @@ +--- +description: "Describes additional properties of a SymTagTaggedUnionCase symbol instance relating to tag ranges." +title: "IDiaSymbol11" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol11 interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol11 + +Describes additional properties of a `SymTagTaggedUnionCase` symbol instance. + +## Syntax + +``` +IDiaSymbol11 : IDiaSymbol10 +``` + +## Methods + +The following table shows the methods of `IDiaSymbol11`. + +> [!NOTE] +> Symbols will return meaningful data for only some of these methods, depending on the type of symbol. If a method returns `S_OK`, then that method has returned meaningful data. + +|Method|Description| +|------------|-----------------| +|[`IDiaSymbol11::get_discriminatedUnionTag`](../../debugger/debug-interface-access/idiasymbol11-get-discriminateduniontag.md)|Retrieves information about the tag of a discriminated union symbol instance.| +|[`IDiaSymbol11::get_tagRanges`](../../debugger/debug-interface-access/idiasymbol11-get-tagranges.md)|Retrieves the ranges of tags within a discriminated union symbol instance.| + + +## Remarks + +## Notes for Callers + +Obtain this interface by first getting an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) instance and then calling [`IUnknown::QueryInterface`](/windows/win32/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) to do a dynamic downcast. + +## Requirements + +`Header:` Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) +- [`IDiaSymbol3`](../../debugger/debug-interface-access/idiasymbol3.md) +- [`IDiaSymbol4`](../../debugger/debug-interface-access/idiasymbol4.md) +- [`IDiaSymbol5`](../../debugger/debug-interface-access/idiasymbol5.md) +- [`IDiaSymbol6`](../../debugger/debug-interface-access/idiasymbol6.md) +- [`IDiaSymbol7`](../../debugger/debug-interface-access/idiasymbol7.md) +- [`IDiaSymbol8`](../../debugger/debug-interface-access/idiasymbol7.md) +- [`IDiaSymbol9`](../../debugger/debug-interface-access/idiasymbol9.md) +- [`IDiaSymbol10`](../../debugger/debug-interface-access/idiasymbol10.md) +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [Symbols and Symbol Tags](../../debugger/debug-interface-access/symbols-and-symbol-tags.md) +- [`DiaTagValue`](../../debugger/debug-interface-access/diatagvalue.md) \ No newline at end of file diff --git a/docs/debugger/debug-interface-access/idiasymbol2-get-isobjccategory.md b/docs/debugger/debug-interface-access/idiasymbol2-get-isobjccategory.md new file mode 100644 index 00000000000..914afd8a68a --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol2-get-isobjccategory.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves a flag indicating whether this is an Objective-C category." +title: "IDiaSymbol2::get_isObjCCategory" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol2::get_isObjCCategory method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol2::get_isObjCCategory + +Retrieves a flag indicating whether this is an Objective-C category. + +## Syntax + +```C++ +HRESULT get_isObjCCategory (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` is this symbol is an Objective-C category; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) +- [`IDiaSymbol2::get_isObjCClass`](../../debugger/debug-interface-access/idiasymbol2-get-isobjcclass.md) +- [`IDiaSymbol2::get_isObjCProtocol`](../../debugger/debug-interface-access/idiasymbol2-get-isobjcprotocol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol2-get-isobjcclass.md b/docs/debugger/debug-interface-access/idiasymbol2-get-isobjcclass.md new file mode 100644 index 00000000000..96469d3b8dc --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol2-get-isobjcclass.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves a flag indicating whether this is an Objective-C class interface/implementation." +title: "IDiaSymbol2::get_isObjCClass" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol2::get_isObjClass method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol2::get_isObjCClass + +Retrieves a flag indicating whether this is an Objective-C class interface/implementation. + +## Syntax + +```C++ +HRESULT get_isObjCClass (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` is this symbol is an Objective-C class interface/implementation; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) +- [`IDiaSymbol2::get_isObjCCategory`](../../debugger/debug-interface-access/idiasymbol2-get-isobjccategory.md) +- [`IDiaSymbol2::get_isObjCProtocol`](../../debugger/debug-interface-access/idiasymbol2-get-isobjcprotocol.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol2-get-isobjcprotocol.md b/docs/debugger/debug-interface-access/idiasymbol2-get-isobjcprotocol.md new file mode 100644 index 00000000000..50a3a3108d4 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol2-get-isobjcprotocol.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves a flag indicating whether this is an Objective-C protocol." +title: "IDiaSymbol2::get_isObjCProtocol" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol2::get_isObjCProtocol method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol2::get_isObjCProtocol + +Retrieves a flag indicating whether this is an Objective-C protocol. + +## Syntax + +```C++ +HRESULT get_isObjCProtocol (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` is this symbol is an Objective-C protocol; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) +- [`IDiaSymbol2::get_isObjCCategory`](../../debugger/debug-interface-access/idiasymbol2-get-isobjccategory.md) +- [`IDiaSymbol2::get_isObjCClass`](../../debugger/debug-interface-access/idiasymbol2-get-isobjcclass.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol2.md b/docs/debugger/debug-interface-access/idiasymbol2.md new file mode 100644 index 00000000000..376d09aa1ad --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol2.md @@ -0,0 +1,57 @@ +--- +description: "Describes additional properties of a symbol instance related to Objective-C." +title: "IDiaSymbol2" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol2 interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol2 + +Describes additional properties of a symbol instance. + +## Syntax + +``` +IDiaSymbol2 : IDiaSymbol +``` + +## Methods in Alphabetical Order + +The following table shows the methods of `IDiaSymbol2`. + +> [!NOTE] +> Symbols will return meaningful data for only some of these methods, depending on the type of symbol. If a method returns `S_OK`, then that method has returned meaningful data. + +|Method|Description| +|------------|-----------------| +|[`IDiaSymbol2::get_isObjCCategory`](../../debugger/debug-interface-access/idiasymbol2-get-isobjccategory.md)|Retrieves a flag indicating whether this is an Objective-C category.| +|[`IDiaSymbol2::get_isObjCClass`](../../debugger/debug-interface-access/idiasymbol2-get-isobjcclass.md)|Retrieves a flag indicating whether this is an Objective-C class interface/implementation.| +|[`IDiaSymbol2::get_isObjCProtocol`](../../debugger/debug-interface-access/idiasymbol2-get-isobjcprotocol.md)|Retrieves a flag indicating whether this is an Objective-C protocol.| + +## Remarks + +## Notes for Callers + +Obtain this interface by first getting an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) instance and then calling [`IUnknown::QueryInterface`](/windows/win32/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) to do a dynamic downcast + +## Requirements + +`Header:` Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [Symbols and Symbol Tags](../../debugger/debug-interface-access/symbols-and-symbol-tags.md) +- [Compiland](../../debugger/debug-interface-access/compiland.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol3-get-inlinee.md b/docs/debugger/debug-interface-access/idiasymbol3-get-inlinee.md new file mode 100644 index 00000000000..06cc8c8409f --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol3-get-inlinee.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves the inlinee symbol from a SymTagInlineSite symbol." +title: "IDiaSymbol3::get_inlinee" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol3::get_inlinee method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol3::get_inlinee + +Retrieves the inlinee symbol from a `SymTagInlineSite` symbol. + +## Syntax + +```C++ +HRESULT get_inlinee (  + IDiaSymbol** pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) for the inlined function if this is an `SymTagInlineSite` symbol. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol3`](../../debugger/debug-interface-access/idiasymbol3.md) +- [`IDiaSymbol3::get_inlineeId`](../../debugger/debug-interface-access/idiasymbol3-get-inlineeId.md) +- [`SymTagEnum`](../../debugger/debug-interface-access/symtagenum.md) \ No newline at end of file diff --git a/docs/debugger/debug-interface-access/idiasymbol3-get-inlineeid.md b/docs/debugger/debug-interface-access/idiasymbol3-get-inlineeid.md new file mode 100644 index 00000000000..575857221ba --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol3-get-inlineeid.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves the inlinee ID from a SymTagInlineSite symbol." +title: "IDiaSymbol3::get_inlineeId" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol3::get_inlineeId method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol3::get_inlineeId + +Retrieves the inlinee ID from a `SymTagInlineSite` symbol. + +## Syntax + +```C++ +HRESULT get_inlineeId (  + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the inlinee ID for the inlined function if this is an `SymTagInlineSite` symbol. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol3`](../../debugger/debug-interface-access/idiasymbol3.md) +- [`IDiaSymbol3::get_inlinee`](../../debugger/debug-interface-access/idiasymbol3-get-inlinee.md) +- [`SymTagEnum`](../../debugger/debug-interface-access/symtagenum.md) \ No newline at end of file diff --git a/docs/debugger/debug-interface-access/idiasymbol3.md b/docs/debugger/debug-interface-access/idiasymbol3.md new file mode 100644 index 00000000000..3f84694f688 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol3.md @@ -0,0 +1,57 @@ +--- +description: "Describes additional properties of a symbol instance related to the inlinee ID." +title: "IDiaSymbol3" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol3 interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol3 + +Describes additional properties of a symbol instance. + +## Syntax + +``` +IDiaSymbol3 : IDiaSymbol2 +``` + +## Methods in Alphabetical Order + +The following table shows the methods of `IDiaSymbol3`. + +> [!NOTE] +> Symbols will return meaningful data for only some of these methods, depending on the type of symbol. If a method returns `S_OK`, then that method has returned meaningful data. + +|Method|Description| +|------------|-----------------| +|[`IDiaSymbol3::get_inlinee`](../../debugger/debug-interface-access/idiasymbol3-get-inlinee.md)|Retrieves the inlinee symbol from a `SymTagInlineSite` symbol.| +|[`IDiaSymbol3::get_inlineeId`](../../debugger/debug-interface-access/idiasymbol3-get-inlineeid.md)|Retrieves the inlinee ID from a `SymTagInlineSite` symbol.| + +## Remarks + +## Notes for Callers + +Obtain this interface by first getting an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) instance and then calling [`IUnknown::QueryInterface`](/windows/win32/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) to do a dynamic downcast. + +## Requirements + +`Header:` Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [Symbols and Symbol Tags](../../debugger/debug-interface-access/symbols-and-symbol-tags.md) +- [Compiland](../../debugger/debug-interface-access/compiland.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol4-get-noexcept.md b/docs/debugger/debug-interface-access/idiasymbol4-get-noexcept.md new file mode 100644 index 00000000000..a5f393d9764 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol4-get-noexcept.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag indicating whether the function is declared as noexcept." +title: "IDiaSymbol4::get_noexcept" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol4::get_noexcept method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol4::get_noexcept + +Retrieves a flag indicating whether the function is declared as `noexcept`. + +## Syntax + +```C++ +HRESULT get_noexcept (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` is this function is declared as `noexcept`; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol4`](../../debugger/debug-interface-access/idiasymbol4.md) +- [`noexcept` (C++)](/cpp/cpp/noexcept-cpp) diff --git a/docs/debugger/debug-interface-access/idiasymbol4.md b/docs/debugger/debug-interface-access/idiasymbol4.md new file mode 100644 index 00000000000..d27f86f0675 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol4.md @@ -0,0 +1,58 @@ +--- +description: "Describes additional properties of a symbol instance related to noexcept." +title: "IDiaSymbol4" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol4 interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol4 + +Describes additional properties of a symbol instance. + +## Syntax + +``` +IDiaSymbol4 : IDiaSymbol3 +``` + +## Methods in Alphabetical Order + +The following table shows the methods of `IDiaSymbol4`. + +> [!NOTE] +> Symbols will return meaningful data for only some of these methods, depending on the type of symbol. If a method returns `S_OK`, then that method has returned meaningful data. + +|Method|Description| +|------------|-----------------| +|[`IDiaSymbol4::get_noexcept`](../../debugger/debug-interface-access/idiasymbol4-get-noexcept.md)|Retrieves a flag indicating whether the function is declared as `noexcept`.| + +## Remarks + +## Notes for Callers + +Obtain this interface by first getting an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) instance and then calling [`IUnknown::QueryInterface`](/windows/win32/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) to do a dynamic downcast. + +## Requirements + +`Header:` Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) +- [`IDiaSymbol3`](../../debugger/debug-interface-access/idiasymbol3.md) +- [`IDiaSymbol4`](../../debugger/debug-interface-access/idiasymbol4.md) +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [Symbols and Symbol Tags](../../debugger/debug-interface-access/symbols-and-symbol-tags.md) +- [Compiland](../../debugger/debug-interface-access/compiland.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol5-get-hasabsoluteaddress.md b/docs/debugger/debug-interface-access/idiasymbol5-get-hasabsoluteaddress.md new file mode 100644 index 00000000000..925b6778319 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol5-get-hasabsoluteaddress.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag that indicates whether this symbol has an absolute address." +title: "IDiaSymbol5::get_hasAbsoluteAddress" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol5::get_hasAbsoluteAddress method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol5::get_hasAbsoluteAddress + +Retrieves a flag that indicates whether this symbol has an absolute address. + +## Syntax + +```C++ +HRESULT get_hasAbsoluteAddress (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if this symbol has an absolute address; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol5`](../../debugger/debug-interface-access/idiasymbol5.md) +- [`noexcept` (C++)](/cpp/cpp/noexcept-cpp) diff --git a/docs/debugger/debug-interface-access/idiasymbol5.md b/docs/debugger/debug-interface-access/idiasymbol5.md new file mode 100644 index 00000000000..bb49bb59654 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol5.md @@ -0,0 +1,58 @@ +--- +description: "Describes additional properties of a symbol instance related to the symbol absolute address." +title: "IDiaSymbol5" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol5 interface" +author: "mikejo5000" +ms.author: "mikejo" +manager: mijacobs +ms.subservice: debug-diagnostics +--- +# IDiaSymbol5 + +Describes additional properties of a symbol instance. + +## Syntax + +``` +IDiaSymbol5 : IDiaSymbol4 +``` + +## Methods in Alphabetical Order + +The following table shows the methods of `IDiaSymbol3`. + +> [!NOTE] +> Symbols will return meaningful data for only some of these methods, depending on the type of symbol. If a method returns `S_OK`, then that method has returned meaningful data. + +|Method|Description| +|------------|-----------------| +|[`IDiaSymbol5::get_hasAbsoluteAddress`](../../debugger/debug-interface-access/idiasymbol5-get-hasabsoluteaddress.md)|Retrieves a flag that indicates whether this symbol has an absolute address.| + +## Remarks + +## Notes for Callers + +Obtain this interface by first getting an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) instance and then calling [`IUnknown::QueryInterface`](/windows/win32/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) to do a dynamic downcast. + +## Requirements + +`Header:` Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) +- [`IDiaSymbol3`](../../debugger/debug-interface-access/idiasymbol3.md) +- [`IDiaSymbol4`](../../debugger/debug-interface-access/idiasymbol4.md) +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [Symbols and Symbol Tags](../../debugger/debug-interface-access/symbols-and-symbol-tags.md) +- [Compiland](../../debugger/debug-interface-access/compiland.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol6-get-isstaticmemberfunc.md b/docs/debugger/debug-interface-access/idiasymbol6-get-isstaticmemberfunc.md new file mode 100644 index 00000000000..62cf0118716 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol6-get-isstaticmemberfunc.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag that indicates whether this function is a static member function." +title: "IDiaSymbol6::get_isStaticMemberFunc" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol6::get_isStaticMemberFunc method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol6::get_isStaticMemberFunc + +Retrieves a flag that indicates whether this function is a static member function. + +## Syntax + +```C++ +HRESULT get_isStaticMemberFunc (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if this is a static member function; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol6`](../../debugger/debug-interface-access/idiasymbol6.md) +- [`noexcept` (C++)](/cpp/cpp/noexcept-cpp) diff --git a/docs/debugger/debug-interface-access/idiasymbol6.md b/docs/debugger/debug-interface-access/idiasymbol6.md new file mode 100644 index 00000000000..247fff08923 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol6.md @@ -0,0 +1,59 @@ +--- +description: "Describes additional properties of a symbol instance related to static member functions." +title: "IDiaSymbol6" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol6 interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol6 + +Describes additional properties of a symbol instance. + +## Syntax + +``` +IDiaSymbol6 : IDiaSymbol5 +``` + +## Methods in Alphabetical Order + +The following table shows the methods of `IDiaSymbol6`. + +> [!NOTE] +> Symbols will return meaningful data for only some of these methods, depending on the type of symbol. If a method returns `S_OK`, then that method has returned meaningful data. + +|Method|Description| +|------------|-----------------| +|[`IDiaSymbol6::get_isStaticMemberFunc`](../../debugger/debug-interface-access/idiasymbol6-get-isstaticmemberfunc.md)|Retrieves a flag that indicates whether this function is a static member function.| + +## Remarks + +## Notes for Callers + +Obtain this interface by first getting an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) instance and then calling [`IUnknown::QueryInterface`](/windows/win32/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) to do a dynamic downcast. + +## Requirements + +`Header:` Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) +- [`IDiaSymbol3`](../../debugger/debug-interface-access/idiasymbol3.md) +- [`IDiaSymbol4`](../../debugger/debug-interface-access/idiasymbol4.md) +- [`IDiaSymbol5`](../../debugger/debug-interface-access/idiasymbol5.md) +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [Symbols and Symbol Tags](../../debugger/debug-interface-access/symbols-and-symbol-tags.md) +- [Compiland](../../debugger/debug-interface-access/compiland.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol7-get-issignret.md b/docs/debugger/debug-interface-access/idiasymbol7-get-issignret.md new file mode 100644 index 00000000000..1a4196ea02e --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol7-get-issignret.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag that indicates whether this function has signed return address protections." +title: "IDiaSymbol7::get_isSignRet" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol7::get_isSignRet method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol7::get_isSignRet + +Retrieves a flag that indicates whether this function has signed return address protections. + +## Syntax + +```C++ +HRESULT get_isSignRet (  + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` is this function has signed return address protections; otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol7`](../../debugger/debug-interface-access/idiasymbol7.md) + diff --git a/docs/debugger/debug-interface-access/idiasymbol7.md b/docs/debugger/debug-interface-access/idiasymbol7.md new file mode 100644 index 00000000000..5ab4f55a048 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol7.md @@ -0,0 +1,56 @@ +--- +description: "Describes additional properties of a symbol instance relating to signed return address protections." +title: "IDiaSymbol7" +ms.date: "07/12/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol7 interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol7 + +Describes additional properties of a symbol instance. + +## Syntax + +``` +IDiaSymbol7 : IDiaSymbol6 +``` + +## Methods in Alphabetical Order + +The following table shows the methods of `IDiaSymbol7`. + +> [!NOTE] +> Symbols will return meaningful data for only some of these methods, depending on the type of symbol. If a method returns `S_OK`, then that method has returned meaningful data. + +|Method|Description| +|------------|-----------------| +|[`IDiaSymbol7::get_isSignRet`](../../debugger/debug-interface-access/idiasymbol7-get-issignret.md)|Retrieves a flag that indicates whether this function has signed return address protections.| + +## Remarks + +## Notes for Callers + +Obtain this interface by first getting an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) instance and then calling [`IUnknown::QueryInterface`](/windows/win32/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) to do a dynamic downcast. + +## Requirements + +`Header:` Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [Symbols and Symbol Tags](../../debugger/debug-interface-access/symbols-and-symbol-tags.md) +- [Compiland](../../debugger/debug-interface-access/compiland.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymboladdr.md b/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymboladdr.md new file mode 100644 index 00000000000..01fbd4c7baf --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymboladdr.md @@ -0,0 +1,46 @@ +--- +description: "Retrieves the virtual address (VA) of the associated symbol." +title: "IDiaSymbol8::get_associatedSymbolAddr" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol8::get_associatedSymbolAddr method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol8::get_associatedSymbolAddr + +Retrieves the virtual address (VA) of the associated symbol. + +## Syntax + +```C++ +HRESULT get_associatedSymbolAddr( + ULONGLONG* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the address of the associated symbol as a virtual address (VA). + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol8`](../../debugger/debug-interface-access/idiasymbol8.md) +- [`IDiaSymbol8::get_associatedSymbolRva`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymbolrva.md) +- [`IDiaSymbol8::get_associatedSymbolSection`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymbolsection.md) +- [`IDiaSymbol8::get_associatedSymbolOffset`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymboloffset.md) + diff --git a/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymbolkind.md b/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymbolkind.md new file mode 100644 index 00000000000..877870196e3 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymbolkind.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves the associated symbol kind." +title: "IDiaSymbol8::get_associatedSymbolKind" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol8::get_associatedSymbolKind method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol8::get_associatedSymbolKind + +Retrieves the associated symbol kind. + +## Syntax + +```C++ +HRESULT get_associatedSymbolKind( + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns a value from [`CV_AssociationKind_e`](../../debugger/debug-interface-access/cv-associationkind-e.md). + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol8`](../../debugger/debug-interface-access/idiasymbol8.md) +- [`CV_AssociationKind_e`](../../debugger/debug-interface-access/cv-associationkind-e.md) + diff --git a/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymboloffset.md b/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymboloffset.md new file mode 100644 index 00000000000..71f892662bd --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymboloffset.md @@ -0,0 +1,45 @@ +--- +description: "Retrieves the offset component of the address of the associated symbol." +title: "IDiaSymbol8::get_associatedSymbolOffset" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol8::get_associatedSymbolOffset method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol8::get_associatedSymbolOffset + +Retrieves the offset component of the address of the associated symbol. + +## Syntax + +```C++ +HRESULT get_associatedSymbolOffset( + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the offset component of the address of the associated symbol. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol8`](../../debugger/debug-interface-access/idiasymbol8.md) +- [`IDiaSymbol8::get_associatedSymbolSection`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymbolsection.md) +- [`IDiaSymbol8::get_associatedSymbolAddr`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymboladdr.md) +- [`IDiaSymbol8::get_associatedSymbolRva`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymbolrva.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymbolrva.md b/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymbolrva.md new file mode 100644 index 00000000000..de556207d21 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymbolrva.md @@ -0,0 +1,46 @@ +--- +description: "Retrieves the relative virtual address (RVA) of the associated symbol." +title: "IDiaSymbol8::get_associatedSymbolRva" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol8::get_associatedSymbolRva method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol8::get_associatedSymbolRva + +Retrieves the relative virtual address (RVA) of the associated symbol. + +## Syntax + +```C++ +HRESULT get_associatedSymbolRva( + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the address of the associated symbol as a relative virtual address (RVA). + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol8`](../../debugger/debug-interface-access/idiasymbol8.md) +- [`IDiaSymbol8::get_associatedSymbolAddr`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymboladdr.md) +- [`IDiaSymbol8::get_associatedSymbolSection`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymbolsection.md) +- [`IDiaSymbol8::get_associatedSymbolOffset`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymboloffset.md) + diff --git a/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymbolsection.md b/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymbolsection.md new file mode 100644 index 00000000000..3e0a877a40d --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol8-get-associatedsymbolsection.md @@ -0,0 +1,45 @@ +--- +description: "Retrieves the section component of the address of the associated symbol." +title: "IDiaSymbol8::get_associatedSymbolSection" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol8::get_associatedSymbolSection method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol8::get_associatedSymbolSection + +Retrieves the section component of the address of the associated symbol. + +## Syntax + +```C++ +HRESULT get_associatedSymbolSection( + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the section component of the address of the associated symbol. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol8`](../../debugger/debug-interface-access/idiasymbol8.md) +- [`IDiaSymbol8::get_associatedSymbolOffset`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymboloffset.md) +- [`IDiaSymbol8::get_associatedSymbolAddr`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymboladdr.md) +- [`IDiaSymbol8::get_associatedSymbolRva`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymbolrva.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol8-get-coroutinekind.md b/docs/debugger/debug-interface-access/idiasymbol8-get-coroutinekind.md new file mode 100644 index 00000000000..3a2a59b786d --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol8-get-coroutinekind.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves the coroutine function kind." +title: "IDiaSymbol8::get_coroutineKind" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol8::get_coroutineKind method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol8::get_coroutineKind + +Retrieves the coroutine function kind. + +## Syntax + +```C++ +HRESULT get_coroutineKind( + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns a value from [`CV_CoroutineKind_e`](../../debugger/debug-interface-access/cv-coroutinekind-e.md). + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol8`](../../debugger/debug-interface-access/idiasymbol8.md) +- [`CV_CoroutineKind_e`](../../debugger/debug-interface-access/cv-coroutinekind-e.md) + diff --git a/docs/debugger/debug-interface-access/idiasymbol8.md b/docs/debugger/debug-interface-access/idiasymbol8.md new file mode 100644 index 00000000000..6ce5771407a --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol8.md @@ -0,0 +1,66 @@ +--- +description: "Describes additional properties of a symbol instance relating to coroutines." +title: "IDiaSymbol8" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol8 interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol8 + +Describes additional properties of a symbol instance relating to coroutines. + +## Syntax + +``` +IDiaSymbol8 : IDiaSymbol7 +``` + +## Methods + +The following table shows the methods of `IDiaSymbol8`. + +> [!NOTE] +> Symbols will return meaningful data for only some of these methods, depending on the type of symbol. If a method returns `S_OK`, then that method has returned meaningful data. + +|Method|Description| +|------------|-----------------| +|[`IDiaSymbol8::get_coroutineKind`](../../debugger/debug-interface-access/idiasymbol8-get-coroutinekind.md)|Retrieves the coroutine function kind.| +|[`IDiaSymbol8::get_associatedSymbolKind`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymbolkind.md)|Retrieves the associated symbol kind.| +|[`IDiaSymbol8::get_associatedSymbolSection`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymbolsection.md)|Retrieves the section component of the address of the associated symbol.| +|[`IDiaSymbol8::get_associatedSymbolOffset`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymboloffset.md)|Retrieves the offset component of the address of the associated symbol.| +|[`IDiaSymbol8::get_associatedSymbolRva`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymbolrva.md)|Retrieves the relative virtual address (RVA) of the associated symbol.| +|[`IDiaSymbol8::get_associatedSymbolAddr`](../../debugger/debug-interface-access/idiasymbol8-get-associatedsymboladdr.md)|Retrieves the virtual address (VA) of the associated symbol.| + +## Remarks + +## Notes for Callers + +Obtain this interface by first getting an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) instance and then calling [`IUnknown::QueryInterface`](/windows/win32/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) to do a dynamic downcast. + +## Requirements + +`Header:` Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) +- [`IDiaSymbol3`](../../debugger/debug-interface-access/idiasymbol3.md) +- [`IDiaSymbol4`](../../debugger/debug-interface-access/idiasymbol4.md) +- [`IDiaSymbol5`](../../debugger/debug-interface-access/idiasymbol5.md) +- [`IDiaSymbol6`](../../debugger/debug-interface-access/idiasymbol6.md) +- [`IDiaSymbol7`](../../debugger/debug-interface-access/idiasymbol7.md) +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [Symbols and Symbol Tags](../../debugger/debug-interface-access/symbols-and-symbol-tags.md) +- [Compiland](../../debugger/debug-interface-access/compiland.md) diff --git a/docs/debugger/debug-interface-access/idiasymbol9-get-framepadoffset.md b/docs/debugger/debug-interface-access/idiasymbol9-get-framepadoffset.md new file mode 100644 index 00000000000..753c79d17bf --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol9-get-framepadoffset.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves the stack frame pad offset used for Edit and Continue." +title: "IDiaSymbol9::get_framePadOffset" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol9::get_framePadOffset method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol9::get_framePadOffset + +Retrieves the stack frame pad offset used for Edit and Continue. + +## Syntax + +```C++ +HRESULT get_framePadOffset( + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the offset in bytes from the frame pointer of the frame pad buffer that was added to the function for Edit and Continue. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol9`](../../debugger/debug-interface-access/idiasymbol9.md) +- [`IDiaSymbol9::get_framePadSize`](../../debugger/debug-interface-access/idiasymbol9-get-framepadsize.md) +- [Edit and Continue (C++)](/visualstudio/debugger/edit-and-continue-visual-cpp) \ No newline at end of file diff --git a/docs/debugger/debug-interface-access/idiasymbol9-get-framepadsize.md b/docs/debugger/debug-interface-access/idiasymbol9-get-framepadsize.md new file mode 100644 index 00000000000..d384061f800 --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol9-get-framepadsize.md @@ -0,0 +1,44 @@ +--- +description: "Retrieves the stack frame pad size used for Edit and Continue." +title: "IDiaSymbol9::get_framePadSize" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol9::get_framePadSize method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol9::get_framePadSize + +Retrieves the stack frame pad size used for Edit and Continue. + +## Syntax + +```C++ +HRESULT get_framePadSize( + DWORD* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns the size in bytes of the frame pad buffer that was added to the function for Edit and Continue. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol9`](../../debugger/debug-interface-access/idiasymbol9.md) +- [`IDiaSymbol9::get_framePadOffset`](../../debugger/debug-interface-access/idiasymbol9-get-framepadoffset.md) +- [Edit and Continue (C++)](/visualstudio/debugger/edit-and-continue-visual-cpp) \ No newline at end of file diff --git a/docs/debugger/debug-interface-access/idiasymbol9-get-isrtcs.md b/docs/debugger/debug-interface-access/idiasymbol9-get-isrtcs.md new file mode 100644 index 00000000000..f8d815ac8ef --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol9-get-isrtcs.md @@ -0,0 +1,43 @@ +--- +description: "Retrieves a flag that indicates whether the function was compiled with runtime stack checks." +title: "IDiaSymbol9::get_isRTCs" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol9::get_isRTCs method" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol9::get_isRTCs + +Retrieves a flag that indicates whether the function was compiled with runtime stack checks. + +## Syntax + +```C++ +HRESULT get_isRTCs( + BOOL* pRetVal +); +``` + +#### Parameters + + `pRetVal` + +[out] Returns `TRUE` if the function was compiled with runtime stack checks (`/RTCs`); otherwise, returns `FALSE`. + +## Return Value + + If successful, returns `S_OK`; otherwise, returns `S_FALSE` or an error code. + +> [!NOTE] +> A return value of `S_FALSE` means that the property is not available for the symbol. + +## See also + +- [`IDiaSymbol9`](../../debugger/debug-interface-access/idiasymbol9.md) +- [`/RTC` (Run-time error checks)](/cpp/build/reference/rtc-run-time-error-checks) diff --git a/docs/debugger/debug-interface-access/idiasymbol9.md b/docs/debugger/debug-interface-access/idiasymbol9.md new file mode 100644 index 00000000000..cb416768adb --- /dev/null +++ b/docs/debugger/debug-interface-access/idiasymbol9.md @@ -0,0 +1,66 @@ +--- +description: "Describes additional properties of a symbol instance relating to frames and runtime stack checks." +title: "IDiaSymbol9" +ms.date: "07/15/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "IDiaSymbol9 interface" +author: "grantri" +ms.author: "grantri" +manager: twhitney +ms.subservice: debug-diagnostics +--- +# IDiaSymbol9 + +Describes additional properties of a symbol instance. + +## Syntax + +``` +IDiaSymbol9 : IDiaSymbol8 +``` + +## Methods + +The following table shows the methods of `IDiaSymbol9`. + +> [!NOTE] +> Symbols will return meaningful data for only some of these methods, depending on the type of symbol. If a method returns `S_OK`, then that method has returned meaningful data. + +|Method|Description| +|------------|-----------------| +|[`IDiaSymbol9::get_framePadSize`](../../debugger/debug-interface-access/idiasymbol9-get-framepadsize.md)|Retrieves the stack frame pad size used for Edit and Continue.| +|[`IDiaSymbol9::get_framePadOffset`](../../debugger/debug-interface-access/idiasymbol9-get-framepadoffset.md)|Retrieves the stack frame pad offset used for Edit and Continue.| +|[`IDiaSymbol9::get_isRTCs`](../../debugger/debug-interface-access/idiasymbol9-get-isrtcs.md)|Retrieves a flag that indicates whether the function was compiled with runtime stack checks.| + +## Remarks + +## Notes for Callers + +Obtain this interface by first getting an [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) instance and then calling [`IUnknown::QueryInterface`](/windows/win32/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) to do a dynamic downcast. + +## Requirements + +`Header:` Dia2.h + +Library: diaguids.lib + +DLL: msdia140.dll + +## See also + +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) +- [`IDiaSymbol3`](../../debugger/debug-interface-access/idiasymbol3.md) +- [`IDiaSymbol4`](../../debugger/debug-interface-access/idiasymbol4.md) +- [`IDiaSymbol5`](../../debugger/debug-interface-access/idiasymbol5.md) +- [`IDiaSymbol6`](../../debugger/debug-interface-access/idiasymbol6.md) +- [`IDiaSymbol7`](../../debugger/debug-interface-access/idiasymbol7.md) +- [`IDiaSymbol8`](../../debugger/debug-interface-access/idiasymbol7.md) +- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) +- [Symbols and Symbol Tags](../../debugger/debug-interface-access/symbols-and-symbol-tags.md) +- [Compiland](../../debugger/debug-interface-access/compiland.md) +- [Edit and Continue (C++)](/visualstudio/debugger/edit-and-continue-visual-cpp) +- [`/RTC` (Run-time error checks)](/cpp/build/reference/rtc-run-time-error-checks) diff --git a/docs/debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md b/docs/debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md index 54591d46272..b4c71201757 100644 --- a/docs/debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md +++ b/docs/debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md @@ -1,7 +1,7 @@ --- description: "Methods are listed alphabetically under each interface in the table of contents and on the interface page in Vtable order." title: "Interfaces (Debug Interface Access SDK)" -ms.date: "11/04/2016" +ms.date: "07/18/2024" ms.topic: "reference" dev_langs: - "C++" @@ -19,139 +19,212 @@ Methods are listed alphabetically under each interface in the table of contents ## In This Section -[IDiaAddressMap](../../debugger/debug-interface-access/idiaaddressmap.md) +[`IDiaAddressMap`](../../debugger/debug-interface-access/idiaaddressmap.md) Provides control over how the DIA SDK computes virtual and relative virtual addresses for debug objects. -[IDiaDataSource](../../debugger/debug-interface-access/idiadatasource.md) +[`IDiaDataSource`](../../debugger/debug-interface-access/idiadatasource.md) Initiates access to a source of debugging symbols. -[IDiaEnumDebugStreamData](../../debugger/debug-interface-access/idiaenumdebugstreamdata.md) +[`IDiaDataSourceEx`](../../debugger/debug-interface-access/idiadatasourceex.md) + +Initiates access to a source of debugging symbols. Supersedes [`IDiaDataSource`](../../debugger/debug-interface-access/idiadatasource.md) + +[`IDiaEnumDebugStreamData`](../../debugger/debug-interface-access/idiaenumdebugstreamdata.md) Provides access to the records in a debug data stream. -[IDiaEnumDebugStreams](../../debugger/debug-interface-access/idiaenumdebugstreams.md) +[`IDiaEnumDebugStreams`](../../debugger/debug-interface-access/idiaenumdebugstreams.md) Enumerates the various debug streams contained in the data source. -[IDiaEnumFrameData](../../debugger/debug-interface-access/idiaenumframedata.md) +[`IDiaEnumFrameData`](../../debugger/debug-interface-access/idiaenumframedata.md) Enumerates the various frame data elements contained in the data source. -[IDiaEnumInjectedSources](../../debugger/debug-interface-access/idiaenuminjectedsources.md) +[`IDiaEnumInjectedSources`](../../debugger/debug-interface-access/idiaenuminjectedsources.md) Enumerate the various injected sources contained in the data source. -[IDiaEnumLineNumbers](../../debugger/debug-interface-access/idiaenumlinenumbers.md) +[`IDiaEnumInputAssemblyFiles`](../../debugger/debug-interface-access/idiaenuminputassemblyfiles.md) + +Enumerate the input assembly files listed in the data source. + +[`IDiaEnumLineNumbers`](../../debugger/debug-interface-access/idiaenumlinenumbers.md) Enumerates the various line numbers contained in the data source. -[IDiaEnumSectionContribs](../../debugger/debug-interface-access/idiaenumsectioncontribs.md) +[`IDiaEnumSectionContribs`](../../debugger/debug-interface-access/idiaenumsectioncontribs.md) Enumerates the various section contributions contained in the data source. -[IDiaEnumSegments](../../debugger/debug-interface-access/idiaenumsegments.md) +[`IDiaEnumSegments`](../../debugger/debug-interface-access/idiaenumsegments.md) Enumerates the various segments contained in the data source. -[IDiaEnumSourceFiles](../../debugger/debug-interface-access/idiaenumsourcefiles.md) +[`IDiaEnumSourceFiles`](../../debugger/debug-interface-access/idiaenumsourcefiles.md) Enumerates the various source files contained in the data source. -[IDiaEnumStackFrames](../../debugger/debug-interface-access/idiaenumstackframes.md) +[`IDiaEnumSourceLink`](../../debugger/debug-interface-access/idiaenumsourcelink.md) + +Enumerates the various source link blobs contained in the data source. + +[`IDiaEnumSourceLink2`](../../debugger/debug-interface-access/idiaenumsourcelink2.md) + +Enumerates the various source link blobs contained in the data source. Supersedes [`IDiaEnumSourceLink2`](../../debugger/debug-interface-access/idiaenumsourcelink2.md) to add support for 64-bit sizes. + +[`IDiaEnumStackFrames`](../../debugger/debug-interface-access/idiaenumstackframes.md) Enumerates the various stack frames available. -[IDiaEnumSymbols](../../debugger/debug-interface-access/idiaenumsymbols.md) +[`IDiaEnumSymbols`](../../debugger/debug-interface-access/idiaenumsymbols.md) Enumerates the various symbols contained in the data source. -[IDiaEnumSymbolsByAddr](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr.md) +[`IDiaEnumSymbolsByAddr`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr.md) Enumerates by address the various symbols contained in the data source. -[IDiaEnumTables](../../debugger/debug-interface-access/idiaenumtables.md) +[`IDiaEnumSymbolsByAddr2`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr2.md) + +Enumerates by address the various symbols contained in the data source. Supersedes [`IDiaEnumSymbolsByAddr`](../../debugger/debug-interface-access/idiaenumsymbolsbyaddr.md) + +[`IDiaEnumTables`](../../debugger/debug-interface-access/idiaenumtables.md) Enumerates the various tables contained in the data source. -[IDiaFrameData](../../debugger/debug-interface-access/idiaframedata.md) +[`IDiaFrameData`](../../debugger/debug-interface-access/idiaframedata.md) Exposes the details of a stack frame. -[IDiaImageData](../../debugger/debug-interface-access/idiaimagedata.md) +[`IDiaImageData`](../../debugger/debug-interface-access/idiaimagedata.md) Exposes the details of the base location and memory offsets of the module or image. -[IDiaInjectedSource](../../debugger/debug-interface-access/idiainjectedsource.md) +[`IDiaInjectedSource`](../../debugger/debug-interface-access/idiainjectedsource.md) Accesses the program source code stored in the DIA data source. -[IDiaLineNumber](../../debugger/debug-interface-access/idialinenumber.md) +[`IDiaInputAssemblyFile`](../../debugger/debug-interface-access/idiainputassemblyfile.md) + +Accesses information that describes an input or source assembly file for a .Net Native binary. + +[`IDiaLineNumber`](../../debugger/debug-interface-access/idialinenumber.md) Accesses information that describes the process of mapping from a block of bytes of image text to a source file line number. -[IDiaLoadCallback](../../debugger/debug-interface-access/idialoadcallback.md) +[`IDiaLoadCallback`](../../debugger/debug-interface-access/idialoadcallback.md) Receives callbacks from the DIA symbol locating procedure, thus enabling a user interface to report on the progress of the location attempt. -[IDiaLoadCallback2](../../debugger/debug-interface-access/idialoadcallback2.md) +[`IDiaLoadCallback2`](../../debugger/debug-interface-access/idialoadcallback2.md) Receives callbacks from the DIA symbol locating procedure, allowing restrictions to be imposed on the locating process. -[IDiaPropertyStorage](../../debugger/debug-interface-access/idiapropertystorage.md) +[`IDiaPropertyStorage`](../../debugger/debug-interface-access/idiapropertystorage.md) Allows you to read the persistent properties of a DIA property set. -[IDiaReadExeAtRVACallback](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) +[`IDiaReadExeAtRVACallback`](../../debugger/debug-interface-access/idiareadexeatrvacallback.md) Enables a client application to supply bytes of an executable file as specified by file position. -[IDiaReadExeAtOffsetCallback](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md) +[`IDiaReadExeAtOffsetCallback`](../../debugger/debug-interface-access/idiareadexeatoffsetcallback.md) Enables a client application to supply bytes of an executable file as specified by a relative virtual address. -[IDiaSectionContrib](../../debugger/debug-interface-access/idiasectioncontrib.md) +[`IDiaSectionContrib`](../../debugger/debug-interface-access/idiasectioncontrib.md) Retrieves data describing a section contribution, that is, a contiguous block of memory contributed to the image by a compiland. -[IDiaSegment](../../debugger/debug-interface-access/idiasegment.md) +[`IDiaSegment`](../../debugger/debug-interface-access/idiasegment.md) Maps data from the section number to segments of address space. -[IDiaSession](../../debugger/debug-interface-access/idiasession.md) +[`IDiaSession`](../../debugger/debug-interface-access/idiasession.md) Provides a query context for debug symbols. -[IDiaSourceFile](../../debugger/debug-interface-access/idiasourcefile.md) +[`IDiaSessionEx`](../../debugger/debug-interface-access/idiasessionex.md) + +Provides an extended query context for debug symbols. + +[`IDiaSourceFile`](../../debugger/debug-interface-access/idiasourcefile.md) Represents a source file. -[IDiaStackFrame](../../debugger/debug-interface-access/idiastackframe.md) +[`IDiaStackFrame`](../../debugger/debug-interface-access/idiastackframe.md) Exposes the properties of a stack frame. -[IDiaStackWalker](../../debugger/debug-interface-access/idiastackwalker.md) +[`IDiaStackWalker`](../../debugger/debug-interface-access/idiastackwalker.md) Provides methods to do a stack walk using the PDB file. -[IDiaStackWalkFrame](../../debugger/debug-interface-access/idiastackwalkframe.md) +[`IDiaStackWalkFrame`](../../debugger/debug-interface-access/idiastackwalkframe.md) -Maintains stack context between invocations of the [IDiaFrameData::execute](../../debugger/debug-interface-access/idiaframedata-execute.md) method. +Maintains stack context between invocations of the [`IDiaFrameData::execute`](../../debugger/debug-interface-access/idiaframedata-execute.md) method. -[IDiaStackWalkHelper](../../debugger/debug-interface-access/idiastackwalkhelper.md) +[`IDiaStackWalkHelper`](../../debugger/debug-interface-access/idiastackwalkhelper.md) Facilitates walking the stack using the program debug database (PDB) file. -[IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) +[`IDiaStackWalkHelper2`](../../debugger/debug-interface-access/idiastackwalkhelper2.md) + +Facilitates walking the stack using the program debug database (PDB) file. Supersedes [`IDiaStackWalkHelper`](../../debugger/debug-interface-access/idiastackwalkhelper.md) + +[`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) Describes the properties of a symbol instance. -[IDiaTable](../../debugger/debug-interface-access/idiatable.md) +[`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) + +Describes additional properties of a symbol instance. Supersedes [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) + +[`IDiaSymbol3`](../../debugger/debug-interface-access/idiasymbol3.md) + +Describes additional properties of a symbol instance. Supersedes [`IDiaSymbol2`](../../debugger/debug-interface-access/idiasymbol2.md) + +[`IDiaSymbol4`](../../debugger/debug-interface-access/idiasymbol4.md) + +Describes additional properties of a symbol instance. Supersedes [`IDiaSymbol3`](../../debugger/debug-interface-access/idiasymbol3.md) + +[`IDiaSymbol5`](../../debugger/debug-interface-access/idiasymbol5.md) + +Describes additional properties of a symbol instance. Supersedes [`IDiaSymbol4`](../../debugger/debug-interface-access/idiasymbol4.md) + +[`IDiaSymbol6`](../../debugger/debug-interface-access/idiasymbol6.md) + +Describes additional properties of a symbol instance. Supersedes [`IDiaSymbol5`](../../debugger/debug-interface-access/idiasymbol5.md) + +[`IDiaSymbol7`](../../debugger/debug-interface-access/idiasymbol7.md) + +Describes additional properties of a symbol instance. Supersedes [`IDiaSymbol6`](../../debugger/debug-interface-access/idiasymbol6.md) + +[`IDiaSymbol8`](../../debugger/debug-interface-access/idiasymbol8.md) + +Describes additional properties of a symbol instance primarily related to coroutines. Supersedes [`IDiaSymbol7`](../../debugger/debug-interface-access/idiasymbol7.md) + +[`IDiaSymbol9`](../../debugger/debug-interface-access/idiasymbol9.md) + +Describes additional properties of a symbol instance. Supersedes [`IDiaSymbol8`](../../debugger/debug-interface-access/idiasymbol8.md) + +[`IDiaSymbol10`](../../debugger/debug-interface-access/idiasymbol10.md) + +Describes additional properties of a symbol instance. Supersedes [`IDiaSymbol9`](../../debugger/debug-interface-access/idiasymbol9.md) + +[`IDiaSymbol11`](../../debugger/debug-interface-access/idiasymbol11.md) + +Describes additional properties of a symbol instance. Supersedes [`IDiaSymbol10`](../../debugger/debug-interface-access/idiasymbol10.md) + +[`IDiaTable`](../../debugger/debug-interface-access/idiatable.md) Enumerates a DIA data source table. ## Related Sections + [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) Describes the enumerations and structures used by the various interfaces of the DIA SDK. diff --git a/docs/debugger/debug-interface-access/locationtype.md b/docs/debugger/debug-interface-access/locationtype.md index 4f04c0ad83f..ba9ce60b58c 100644 --- a/docs/debugger/debug-interface-access/locationtype.md +++ b/docs/debugger/debug-interface-access/locationtype.md @@ -1,7 +1,7 @@ --- description: "Indicates the kind of location information contained in a symbol." title: "LocationType" -ms.date: "11/04/2016" +ms.date: "07/18/2024" ms.topic: "reference" dev_langs: - "C++" @@ -12,7 +12,7 @@ ms.author: "mikejo" manager: mijacobs ms.subservice: debug-diagnostics --- -# LocationType +# `LocationType` Indicates the kind of location information contained in a symbol. @@ -31,6 +31,7 @@ enum LocationType { LocIsIlRel, LocInMetaData, LocIsConstant, + LocIsRegRelAliasIndir, LocTypeMax }; ``` @@ -50,18 +51,22 @@ enum LocationType { | `LocIsIlRel` | Location is MSIL-relative. | | `LocInMetaData` | Location is in metadata. | | `LocIsConstant` | Location is in a constant value. | +| `LocIsRegRelAliasIndir` | Location is register-relative, and an alias for part of a user defined type (UDT) . | | `LocTypeMax` | The number of location types in this enumeration. | ## Remarks -The properties available to the [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) interface depend on the symbol's location within the image file. For more information, see [Symbol Locations](../../debugger/debug-interface-access/symbol-locations.md). -The values in this enumeration are returned by a call to the [IDiaSymbol::get_locationType](../../debugger/debug-interface-access/idiasymbol-get-locationtype.md) method. +The properties available to the [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) interface depend on the symbol's location within the image file. For more information, see [Symbol Locations](../../debugger/debug-interface-access/symbol-locations.md). + +The values in this enumeration are returned by a call to the [`IDiaSymbol::get_locationType`](../../debugger/debug-interface-access/idiasymbol-get-locationtype.md) method. ## Requirements + Header: cvconst.h ## See also + - [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) -- [IDiaSymbol](../../debugger/debug-interface-access/idiasymbol.md) -- [IDiaSymbol::get_locationType](../../debugger/debug-interface-access/idiasymbol-get-locationtype.md) +- [`IDiaSymbol`](../../debugger/debug-interface-access/idiasymbol.md) +- [`IDiaSymbol::get_locationType`](../../debugger/debug-interface-access/idiasymbol-get-locationtype.md) - [Symbol Locations](../../debugger/debug-interface-access/symbol-locations.md) diff --git a/docs/debugger/debug-interface-access/memorytypeenum.md b/docs/debugger/debug-interface-access/memorytypeenum.md index 860f4fdef7a..ad3cc12ac30 100644 --- a/docs/debugger/debug-interface-access/memorytypeenum.md +++ b/docs/debugger/debug-interface-access/memorytypeenum.md @@ -1,7 +1,7 @@ --- description: "Specifies the type of memory to access." title: "MemoryTypeEnum" -ms.date: "11/04/2016" +ms.date: "07/18/2024" ms.topic: "reference" dev_langs: - "C++" @@ -12,7 +12,7 @@ ms.author: "mikejo" manager: mijacobs ms.subservice: debug-diagnostics --- -# MemoryTypeEnum +# `MemoryTypeEnum` Specifies the type of memory to access. @@ -23,6 +23,7 @@ enum MemoryTypeEnum { MemTypeCode, MemTypeData, MemTypeStack, + MemTypeCodeOnHeap, // Read only memory for code generated on heap by runtime MemTypeAny = -1 }; ``` @@ -35,9 +36,10 @@ enum MemoryTypeEnum { | `MemTypeData` | Accesses data or stack memory. | | `MemTypeStack` | Accesses only stack memory. | | `MemTypeAny` | Accesses any kind of memory. | +| `MemTypeCodeOnHeap` | Accesses only code memory generated on heap by runtime. | ## Remarks -The values in this enumeration are passed to the [IDiaStackWalkHelper::readMemory](../../debugger/debug-interface-access/idiastackwalkhelper-readmemory.md) method to limit access to different types of memory. +The values in this enumeration are passed to the [`IDiaStackWalkHelper::readMemory`](../../debugger/debug-interface-access/idiastackwalkhelper-readmemory.md) method to limit access to different types of memory. ## Requirements Header: cvconst.h diff --git a/docs/debugger/debug-interface-access/pfnminipdberrorcallback2.md b/docs/debugger/debug-interface-access/pfnminipdberrorcallback2.md new file mode 100644 index 00000000000..6d251ac9ff1 --- /dev/null +++ b/docs/debugger/debug-interface-access/pfnminipdberrorcallback2.md @@ -0,0 +1,73 @@ +--- +description: Provides the file name and error code for the last load error for fastlink PDBs. +title: "PFNMINIPDBERRORCALLBACK2" +ms.date: "7/2/2024" +ms.topic: "reference" +dev_langs: + - "C++" +helpviewer_keywords: + - "PFNMINIPDBERRORCALLBACK2 typedef" +author: "grantri" +ms.author: "grantri" +manager: mijacobs +ms.subservice: debug-diagnostics +--- + +# PFNMINIPDBERRORCALLBACK2 + +Provides the file name and error code for the last load error for fastlink PDBs. + +## Syntax + +```c++ +typedef HRESULT __cdecl (*PFNMINIPDBERRORCALLBACK2)( + void* pvContext, + DWORD dwErrorCode, + const LPCOLESTR szObjOrPdb, + const LPCOLESTR szLib +); +``` + +#### Parameters + +pvContext + +[in] The context that was passed into the call to the [IDiaDataSourceEx::setPfnMiniPDBErrorCallback2](../../debugger/debug-interface-access/idiadatasourceex-setpfnminipdberrorcallback2.md) method. + +dwErrorCode + +[in] The error code describing the particular error. Although typed as a `DWORD` this is really a `HRESULT`. The most common values are `E_PDB_CORRUPT`, `E_DIA_COFF_ACCESS`, and `E_DIA_COMP_PDB_ACCESS`. + +szObjOrPdb + +[in] The name of the OBJ or PDB file that is related to the error. + +szLib + +[in] If `szObjOrPdb` refers to an OBJ file within a LIB file, this is the name of the LIB. Otherwise it is `nullptr`. + +## Return Value + +The return value is ignored. + +## Example + +```c++ +HRESULT __cdecl ReportMiniPDBError(void *pvContext, DWORD hr, const wchar_t *szObjOrPdb, const wchar_t *szLib) +{ + wprintf(L"Callback on fastlink PDB: hr = 0x%08x, szObjOrPdb=\"%ls\", szLib=\"%ls\"\n", hr, szObjOrPdb, szLib); + *reinterpret_cast(pvContext) = true; + return S_OK; +} +... + bool callbackCalled = false; + HRESULT hr = pSourceEx->setPfnMiniPDBErrorCallback2(&callbackCalled, ReportMiniPDBError); +... +``` + +## See also + +- [IDiaDataSource](../../debugger/debug-interface-access/idiadatasource.md) +- [IDiaDataSourceEx](../../debugger/debug-interface-access/idiadatasourceex.md) +- [IDiaDataSourceEx::setPfnMiniPDBErrorCallback2](../../debugger/debug-interface-access/idiadatasourceex-setpfnminipdberrorcallback2.md) +- [Common HRESULT Values (Debug Interface Access SDK)](../../debugger/debug-interface-access/common-hresult-values.md) diff --git a/docs/debugger/debug-interface-access/symbol-locations.md b/docs/debugger/debug-interface-access/symbol-locations.md index 4704b660fea..64c9ee709be 100644 --- a/docs/debugger/debug-interface-access/symbol-locations.md +++ b/docs/debugger/debug-interface-access/symbol-locations.md @@ -1,7 +1,7 @@ --- description: "Most symbols have a defined location within the image file." title: "Symbol Locations" -ms.date: "11/04/2016" +ms.date: "07/18/2024" ms.topic: "reference" dev_langs: - "C++" @@ -22,29 +22,32 @@ Most symbols have a defined location within the image file. A symbol's location |Location type|Additional properties| |-------------------|---------------------------| |`LocIsNull`|none| -|`LocIsStatic`|[IDiaSymbol::get_addressOffset](../../debugger/debug-interface-access/idiasymbol-get-addressoffset.md)

[IDiaSymbol::get_addressSection](../../debugger/debug-interface-access/idiasymbol-get-addresssection.md)

[IDiaSymbol::get_relativeVirtualAddress](../../debugger/debug-interface-access/idiasymbol-get-relativevirtualaddress.md) (if relative virtual addresses are enabled)

[IDiaSymbol::get_virtualAddress](../../debugger/debug-interface-access/idiasymbol-get-virtualaddress.md) (if the image base has been set to nonzero)| -|`LocIsTLS`|[IDiaSymbol::get_addressSection](../../debugger/debug-interface-access/idiasymbol-get-addresssection.md)

[IDiaSymbol::get_addressOffset](../../debugger/debug-interface-access/idiasymbol-get-addressoffset.md)| -|`LocIsRegRel`|[IDiaSymbol::get_registerId](../../debugger/debug-interface-access/idiasymbol-get-registerid.md)

[IDiaSymbol::get_offset](../../debugger/debug-interface-access/idiasymbol-get-offset.md)| -|`LocIsThisRel`|[IDiaSymbol::get_offset](../../debugger/debug-interface-access/idiasymbol-get-offset.md)| -|`LocIsEnregistered`|[IDiaSymbol::get_registerId](../../debugger/debug-interface-access/idiasymbol-get-registerid.md)| -|`LocIsBitField`|[IDiaSymbol::get_bitPosition](../../debugger/debug-interface-access/idiasymbol-get-bitposition.md)

[IDiaSymbol::get_length](../../debugger/debug-interface-access/idiasymbol-get-length.md)

[IDiaSymbol::get_offset](../../debugger/debug-interface-access/idiasymbol-get-offset.md)| -|`LocIsSlot`|[IDiaSymbol::get_slot](../../debugger/debug-interface-access/idiasymbol-get-slot.md)| -|`LocIsIlRel`|[IDiaSymbol::get_offset](../../debugger/debug-interface-access/idiasymbol-get-offset.md)| -|`LocInMetaData`|[IDiaSymbol::get_token](../../debugger/debug-interface-access/idiasymbol-get-token.md)| -|`LocIsConstant`|[IDiaSymbol::get_value](../../debugger/debug-interface-access/idiasymbol-get-value.md)| +|`LocIsStatic`|[`IDiaSymbol::get_addressOffset`](../../debugger/debug-interface-access/idiasymbol-get-addressoffset.md)

[`IDiaSymbol::get_addressSection`](../../debugger/debug-interface-access/idiasymbol-get-addresssection.md)

[`IDiaSymbol::get_relativeVirtualAddress`](../../debugger/debug-interface-access/idiasymbol-get-relativevirtualaddress.md) (if relative virtual addresses are enabled)

[`IDiaSymbol::get_virtualAddress`](../../debugger/debug-interface-access/idiasymbol-get-virtualaddress.md) (if the image base has been set to nonzero)| +|`LocIsTLS`|[`IDiaSymbol::get_addressSection`](../../debugger/debug-interface-access/idiasymbol-get-addresssection.md)

[`IDiaSymbol::get_addressOffset`](../../debugger/debug-interface-access/idiasymbol-get-addressoffset.md)| +|`LocIsRegRel`|[`IDiaSymbol::get_registerId`](../../debugger/debug-interface-access/idiasymbol-get-registerid.md)

[`IDiaSymbol::get_offset`](../../debugger/debug-interface-access/idiasymbol-get-offset.md)| +|`LocIsThisRel`|[`IDiaSymbol::get_offset`](../../debugger/debug-interface-access/idiasymbol-get-offset.md)| +|`LocIsEnregistered`|[`IDiaSymbol::get_registerId`](../../debugger/debug-interface-access/idiasymbol-get-registerid.md)| +|`LocIsBitField`|[`IDiaSymbol::get_bitPosition`](../../debugger/debug-interface-access/idiasymbol-get-bitposition.md)

[`IDiaSymbol::get_length`](../../debugger/debug-interface-access/idiasymbol-get-length.md)

[`IDiaSymbol::get_offset`](../../debugger/debug-interface-access/idiasymbol-get-offset.md)| +|`LocIsSlot`|[`IDiaSymbol::get_slot`](../../debugger/debug-interface-access/idiasymbol-get-slot.md)| +|`LocIsIlRel`|[`IDiaSymbol::get_offset`](../../debugger/debug-interface-access/idiasymbol-get-offset.md)| +|`LocInMetaData`|[`IDiaSymbol::get_token`](../../debugger/debug-interface-access/idiasymbol-get-token.md)| +|`LocIsConstant`|[`IDiaSymbol::get_value`](../../debugger/debug-interface-access/idiasymbol-get-value.md)| +|`LocIsRegRelAliasIndir`|[`IDiaSymbol::get_registerId`](../../debugger/debug-interface-access/idiasymbol-get-registerid.md)

[`IDiaSymbol::get_offset`](../../debugger/debug-interface-access/idiasymbol-get-offset.md)

[`IDiaSymbol::get_offsetInUdt`](../../debugger/debug-interface-access/idiasymbol-get-offsetinudt.md)| ## See also -- [IDiaSymbol::get_addressOffset](../../debugger/debug-interface-access/idiasymbol-get-addressoffset.md) -- [IDiaSymbol::get_addressSection](../../debugger/debug-interface-access/idiasymbol-get-addresssection.md) -- [IDiaSymbol::get_bitPosition](../../debugger/debug-interface-access/idiasymbol-get-bitposition.md) -- [IDiaSymbol::get_length](../../debugger/debug-interface-access/idiasymbol-get-length.md) -- [IDiaSymbol::get_locationType](../../debugger/debug-interface-access/idiasymbol-get-locationtype.md) -- [IDiaSymbol::get_offset](../../debugger/debug-interface-access/idiasymbol-get-offset.md) -- [IDiaSymbol::get_registerId](../../debugger/debug-interface-access/idiasymbol-get-registerid.md) -- [IDiaSymbol::get_relativeVirtualAddress](../../debugger/debug-interface-access/idiasymbol-get-relativevirtualaddress.md) -- [IDiaSymbol::get_slot](../../debugger/debug-interface-access/idiasymbol-get-slot.md) -- [IDiaSymbol::get_token](../../debugger/debug-interface-access/idiasymbol-get-token.md) -- [IDiaSymbol::get_value](../../debugger/debug-interface-access/idiasymbol-get-value.md) -- [IDiaSymbol::get_virtualAddress](../../debugger/debug-interface-access/idiasymbol-get-virtualaddress.md) -- [LocationType Enumeration](../../debugger/debug-interface-access/locationtype.md) + +- [`IDiaSymbol::get_addressOffset`](../../debugger/debug-interface-access/idiasymbol-get-addressoffset.md) +- [`IDiaSymbol::get_addressSection`](../../debugger/debug-interface-access/idiasymbol-get-addresssection.md) +- [`IDiaSymbol::get_bitPosition`](../../debugger/debug-interface-access/idiasymbol-get-bitposition.md) +- [`IDiaSymbol::get_length`](../../debugger/debug-interface-access/idiasymbol-get-length.md) +- [`IDiaSymbol::get_locationType`](../../debugger/debug-interface-access/idiasymbol-get-locationtype.md) +- [`IDiaSymbol::get_offset`](../../debugger/debug-interface-access/idiasymbol-get-offset.md) +- [`IDiaSymbol::get_offsetInUdt`](../../debugger/debug-interface-access/idiasymbol-get-offsetinudt.md) +- [`IDiaSymbol::get_registerId`](../../debugger/debug-interface-access/idiasymbol-get-registerid.md) +- [`IDiaSymbol::get_relativeVirtualAddress`](../../debugger/debug-interface-access/idiasymbol-get-relativevirtualaddress.md) +- [`IDiaSymbol::get_slot`](../../debugger/debug-interface-access/idiasymbol-get-slot.md) +- [`IDiaSymbol::get_token`](../../debugger/debug-interface-access/idiasymbol-get-token.md) +- [`IDiaSymbol::get_value`](../../debugger/debug-interface-access/idiasymbol-get-value.md) +- [`IDiaSymbol::get_virtualAddress`](../../debugger/debug-interface-access/idiasymbol-get-virtualaddress.md) +- [`LocationType` Enumeration](../../debugger/debug-interface-access/locationtype.md) - [Symbols and Symbol Tags](../../debugger/debug-interface-access/symbols-and-symbol-tags.md) diff --git a/docs/debugger/debug-interface-access/symtagenum.md b/docs/debugger/debug-interface-access/symtagenum.md index a730990c527..455864412eb 100644 --- a/docs/debugger/debug-interface-access/symtagenum.md +++ b/docs/debugger/debug-interface-access/symtagenum.md @@ -1,7 +1,7 @@ --- description: "Specifies the type of symbol." title: "SymTagEnum" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -56,7 +56,14 @@ enum SymTagEnum { SymTagBaseInterface, SymTagVectorType, SymTagMatrixType, - SymTagHLSLType + SymTagHLSLType, + SymTagCaller, + SymTagCallee, + SymTagExport, + SymTagHeapAllocationSite, + SymTagCoffGroup, + SymTagInlinee, + SymTagTaggedUnionCase, }; ``` @@ -101,41 +108,51 @@ enum SymTagEnum { | `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 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 (i.e. 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 (e.g. Rust's enum type) | ## Remarks + All symbols within a debug file have an identifying tag that specifies the symbol's type. The values in this enumeration are returned by a call to the [IDiaSymbol::get_symTag](../../debugger/debug-interface-access/idiasymbol-get-symtag.md) method. The values in this enumeration are passed to the following methods to limit the scope of the search to a specific symbol type: -- [IDiaSession::findSymbolByAddr](../../debugger/debug-interface-access/idiasession-findsymbolbyaddr.md) - -- [IDiaSession::findSymbolByRVA](../../debugger/debug-interface-access/idiasession-findsymbolbyrva.md) - -- [IDiaSession::findSymbolByRVAEx](../../debugger/debug-interface-access/idiasession-findsymbolbyrvaex.md) - -- [IDiaSession::findSymbolByToken](../../debugger/debug-interface-access/idiasession-findsymbolbytoken.md) - -- [IDiaSession::findSymbolByVA](../../debugger/debug-interface-access/idiasession-findsymbolbyva.md) - -- [IDiaSession::findSymbolByVAEx](../../debugger/debug-interface-access/idiasession-findsymbolbyvaex.md) - -- [IDiaSession::findChildren](../../debugger/debug-interface-access/idiasession-findchildren.md) - -- [IDiaSymbol::findChildren](../../debugger/debug-interface-access/idiasymbol-findchildren.md) +- [`IDiaSession::findSymbolByAddr`](../../debugger/debug-interface-access/idiasession-findsymbolbyaddr.md) +` +- [`IDiaSession`::findSymbolByRVA`](../../debugger/debug-interface-access/idiasession-findsymbolbyrva.md) +` +- [`IDiaSession`::findSymbolByRVAEx`](../../debugger/debug-interface-access/idiasession-findsymbolbyrvaex.md) +` +- [`IDiaSession`::findSymbolByToken`](../../debugger/debug-interface-access/idiasession-findsymbolbytoken.md) +` +- [`IDiaSession`::findSymbolByVA`](../../debugger/debug-interface-access/idiasession-findsymbolbyva.md) +` +- [`IDiaSession`::findSymbolByVAEx`](../../debugger/debug-interface-access/idiasession-findsymbolbyvaex.md) +` +- [`IDiaSession`::findChildren`](../../debugger/debug-interface-access/idiasession-findchildren.md) +` +- [`IDiaSymbol`::findChildren`](../../debugger/debug-interface-access/idiasymbol-findchildren.md) ## Requirements + Header: cvconst.h ## See also + - [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) - [Lexical Hierarchy of Symbol Types](../../debugger/debug-interface-access/lexical-hierarchy-of-symbol-types.md) -- [IDiaSession::findSymbolByAddr](../../debugger/debug-interface-access/idiasession-findsymbolbyaddr.md) -- [IDiaSession::findSymbolByRVA](../../debugger/debug-interface-access/idiasession-findsymbolbyrva.md) -- [IDiaSession::findSymbolByRVAEx](../../debugger/debug-interface-access/idiasession-findsymbolbyrvaex.md) -- [IDiaSession::findSymbolByToken](../../debugger/debug-interface-access/idiasession-findsymbolbytoken.md) -- [IDiaSession::findSymbolByVA](../../debugger/debug-interface-access/idiasession-findsymbolbyva.md) -- [IDiaSession::findSymbolByVAEx](../../debugger/debug-interface-access/idiasession-findsymbolbyvaex.md) -- [IDiaSession::findChildren](../../debugger/debug-interface-access/idiasession-findchildren.md) -- [IDiaSymbol::findChildren](../../debugger/debug-interface-access/idiasymbol-findchildren.md) +- [`IDiaSession::findSymbolByAddr`](../../debugger/debug-interface-access/idiasession-findsymbolbyaddr.md) +- [`IDiaSession::findSymbolByRVA`](../../debugger/debug-interface-access/idiasession-findsymbolbyrva.md) +- [`IDiaSession::findSymbolByRVAEx`](../../debugger/debug-interface-access/idiasession-findsymbolbyrvaex.md) +- [`IDiaSession::findSymbolByToken`](../../debugger/debug-interface-access/idiasession-findsymbolbytoken.md) +- [`IDiaSession::findSymbolByVA`](../../debugger/debug-interface-access/idiasession-findsymbolbyva.md) +- [`IDiaSession::findSymbolByVAEx`](../../debugger/debug-interface-access/idiasession-findsymbolbyvaex.md) +- [`IDiaSession::findChildren`](../../debugger/debug-interface-access/idiasession-findchildren.md) +- [`IDiaSymbol::findChildren`](../../debugger/debug-interface-access/idiasymbol-findchildren.md) diff --git a/docs/debugger/debug-interface-access/thunk-ordinal.md b/docs/debugger/debug-interface-access/thunk-ordinal.md index 60c7cb1550e..0826ec4e57e 100644 --- a/docs/debugger/debug-interface-access/thunk-ordinal.md +++ b/docs/debugger/debug-interface-access/thunk-ordinal.md @@ -1,7 +1,7 @@ --- description: "Designates thunk types." title: "THUNK_ORDINAL" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -12,7 +12,7 @@ ms.author: "mikejo" manager: mijacobs ms.subservice: debug-diagnostics --- -# THUNK_ORDINAL +# `THUNK_ORDINAL` Designates thunk types. @@ -29,6 +29,9 @@ typedef enum THUNK_ORDINAL { // trampoline thunk ordinals - only for use in Trampoline thunk symbols THUNK_ORDINAL_TRAMP_INCREMENTAL, THUNK_ORDINAL_TRAMP_BRANCHISLAND, + THUNK_ORDINAL_TRAMP_STRICTICF, + THUNK_ORDINAL_TRAMP_ARM64XSAMEADDRESS, + THUNK_ORDINAL_TRAMP_FUNCOVERRIDING, } THUNK_ORDINAL; ``` @@ -36,20 +39,27 @@ typedef enum THUNK_ORDINAL { | Element | Description | | -------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| THUNK_ORDINAL_NOTYPE | Standard thunk. | -| THUNK_ORDINAL_ADJUSTOR | A `this` adjustor thunk. | -| THUNK_ORDINAL_VCALL | Virtual call thunk. | -| THUNK_ORDINAL_PCODE | P-code thunk. | -| THUNK_ORDINAL_LOAD | Delay load thunk. | -| THUNK_ORDINAL_TRAMP_INCREMENTAL | Incremental trampoline thunk (a trampoline thunk is used to bounce calls from one memory space to another). | -| THUNK_ORDINAL_TRAMP_BRANCHISLAND | Branch point trampoline thunk. | +| `THUNK_ORDINAL_NOTYPE` | Standard thunk. | +| `THUNK_ORDINAL_ADJUSTOR` | A `this` adjustor thunk. | +| `THUNK_ORDINAL_VCALL` | Virtual call thunk. | +| `THUNK_ORDINAL_PCODE` | P-code thunk. | +| `THUNK_ORDINAL_LOAD` | Delay load thunk. | +| `THUNK_ORDINAL_TRAMP_INCREMENTAL` | Incremental trampoline thunk (a trampoline thunk is used to bounce calls from one memory space to another). | +| `THUNK_ORDINAL_TRAMP_BRANCHISLAND` | Branch point trampoline thunk. | +| `THUNK_ORDINAL_TRAMP_STRICTICF` | Strict icf trampoline thunk. | +| `THUNK_ORDINAL_TRAMP_ARM64XSAMEADDRESS` | ARM64X same address trampoline thunk. | +| `THUNK_ORDINAL_TRAMP_FUNCOVERRIDING` | Function overriding trampoline thunk. | + ## Remarks + The values in this enumeration are returned from a call to the [IDiaSymbol::get_thunkOrdinal](../../debugger/debug-interface-access/idiasymbol-get-thunkordinal.md) method. ## Requirements + Header: cvconst.h ## See also + - [Enumerations and Structures](../../debugger/debug-interface-access/enumerations-and-structures.md) -- [IDiaSymbol::get_thunkOrdinal](../../debugger/debug-interface-access/idiasymbol-get-thunkordinal.md) +- [`IDiaSymbol::get_thunkOrdinal`](../../debugger/debug-interface-access/idiasymbol-get-thunkordinal.md) diff --git a/docs/debugger/debug-interface-access/toc.yml b/docs/debugger/debug-interface-access/toc.yml index cf94dee8cfb..a1916f0e614 100644 --- a/docs/debugger/debug-interface-access/toc.yml +++ b/docs/debugger/debug-interface-access/toc.yml @@ -128,6 +128,30 @@ href: idiadatasource-loaddatafrompdb.md - name: IDiaDataSource::openSession href: idiadatasource-opensession.md + - name: IDiaDataSource::loadDataFromCodeViewInfo + href: idiadatasource-loaddatafromcodeviewinfo.md + - name: IDiaDataSource::loadDataFromMiscInfo + href: idiadatasource-loaddatafrommiscinfo.md + - name: IDiaDataSourceEx + items: + - name: IDiaDataSourceEx + href: idiadatasourceex.md + - name: IDiaDataSourceEx::loadDataFromPdbEx + href: idiadatasourceex-loaddatafrompdbex.md + - name: IDiaDataSourceEx::loadAndValidateDataFromPdbEx + href: idiadatasourceex-loadandvalidatedatafrompdbex.md + - name: IDiaDataSourceEx::loadDataForExeEx + href: idiadatasourceex-loaddataforexeex.md + - name: IDiaDataSourceEx::loadDataFromIStreamEx + href: idiadatasourceex-loaddatafromistreamex.md + - name: IDiaDataSourceEx::getStreamSize + href: idiadatasourceex-getstreamsize.md + - name: IDiaDataSourceEx::getStreamRawData + href: idiadatasourceex-getstreamrawdata.md + - name: IDiaDataSourceEx::setPfnMiniPDBErrorCallback2 + href: idiadatasourceex-setpfnminipdberrorcallback2.md + - name: IDiaDataSourceEx::ValidatePdb + href: idiadatasourceex-validatepdb.md - name: IDiaEnumDebugStreamData items: - name: IDiaEnumDebugStreamData @@ -206,6 +230,24 @@ href: idiaenuminjectedsources-reset.md - name: IDiaEnumInjectedSources::Skip href: idiaenuminjectedsources-skip.md + - name: IDiaEnumInputAssemblyFiles + items: + - name: IDiaEnumInputAssemblyFiles + href: idiaenuminputassemblyfiles.md + - name: IDiaEnumInputAssemblyFiles::Clone + href: idiaenuminputassemblyfiles-clone.md + - name: IDiaEnumInputAssemblyFiles::get__NewEnum + href: idiaenuminputassemblyfiles-get-newenum.md + - name: IDiaEnumInputAssemblyFiles::get_Count + href: idiaenuminputassemblyfiles-get-count.md + - name: IDiaEnumInputAssemblyFiles::Item + href: idiaenuminputassemblyfiles-item.md + - name: IDiaEnumInputAssemblyFiles::Next + href: idiaenuminputassemblyfiles-next.md + - name: IDiaEnumInputAssemblyFiles::Reset + href: idiaenuminputassemblyfiles-reset.md + - name: IDiaEnumInputAssemblyFiles::Skip + href: idiaenuminputassemblyfiles-skip.md - name: IDiaEnumLineNumbers items: - name: IDiaEnumLineNumbers @@ -278,6 +320,30 @@ href: idiaenumsourcefiles-reset.md - name: IDiaEnumSourceFiles::Skip href: idiaenumsourcefiles-skip.md + - name: IDiaEnumSourceLink + items: + - name: IDiaEnumSourceLink + href: idiaenumsourcelink.md + - name: IDiaEnumSourceLink::Count + href: idiaenumsourcelink-count.md + - name: IDiaEnumSourceLink::SizeOfNext + href: idiaenumsourcelink-sizeofnext.md + - name: IDiaEnumSourceLink::Next + href: idiaenumsourcelink-next.md + - name: IDiaEnumSourceLink::Skip + href: idiaenumsourcelink-skip.md + - name: IDiaEnumSourceLink::Reset + href: idiaenumsourcelink-reset.md + - name: IDiaEnumSourceLink::Clone + href: idiaenumsourcelink-clone.md + - name: IDiaEnumSourceLink2 + items: + - name: IDiaEnumSourceLink2 + href: idiaenumsourcelink2.md + - name: IDiaEnumSourceLink2::SizeOfNext2 + href: idiaenumsourcelink2-sizeofnext2.md + - name: IDiaEnumSourceLink2::Next2 + href: idiaenumsourcelink2-next2.md - name: IDiaEnumStackFrames items: - name: IDiaEnumStackFrames @@ -320,6 +386,20 @@ href: idiaenumsymbolsbyaddr-symbolbyrva.md - name: IDiaEnumSymbolsByAddr::symbolByVA href: idiaenumsymbolsbyaddr-symbolbyva.md + - name: IDiaEnumSymbolsByAddr2 + items: + - name: IDiaEnumSymbolsByAddr2 + href: idiaenumsymbolsbyaddr2.md + - name: IDiaEnumSymbolsByAddr2::NextEx + href: idiaenumsymbolsbyaddr2-nextex.md + - name: IDiaEnumSymbolsByAddr2::PrevEx + href: idiaenumsymbolsbyaddr2-prevex.md + - name: IDiaEnumSymbolsByAddr2::symbolByAddrEx + href: idiaenumsymbolsbyaddr2-symbolbyaddrex.md + - name: IDiaEnumSymbolsByAddr2::symbolByRVAEx + href: idiaenumsymbolsbyaddr2-symbolbyrvaex.md + - name: IDiaEnumSymbolsByAddr2::symbolByVAEx + href: idiaenumsymbolsbyaddr2-symbolbyvaex.md - name: IDiaEnumTables items: - name: IDiaEnumTables @@ -406,6 +486,22 @@ href: idiainjectedsource-get-sourcecompression.md - name: IDiaInjectedSource::get_virtualFilename href: idiainjectedsource-get-virtualfilename.md + - name: IDiaInputAssemblyFile + items: + - name: IDiaInputAssemblyFile + href: idiainputassemblyfile.md + - name: IDiaInputAssemblyFile::get_fileName + href: idiainputassemblyfile-get-filename.md + - name: IDiaInputAssemblyFile::get_index + href: idiainputassemblyfile-get-index.md + - name: IDiaInputAssemblyFile::get_pdbAvailableAtILMerge + href: idiainputassemblyfile-get-pdbavailableatilmerge.md + - name: IDiaInputAssemblyFile::get_timestamp + href: idiainputassemblyfile-get-timestamp.md + - name: IDiaInputAssemblyFile::get_uniqueId + href: idiainputassemblyfile-get-uniqueid.md + - name: IDiaInputAssemblyFile::get_version + href: idiainputassemblyfile-get-version.md - name: IDiaLineNumber items: - name: IDiaLineNumber @@ -574,16 +670,34 @@ items: - name: IDiaSession href: idiasession.md + - name: IDiaSession::addressForRVA + href: idiasession-addressforrva.md + - name: IDiaSession::addressForVA + href: idiasession-addressForVA.md - name: IDiaSession::findAcceleratorInlineesByLinenum href: idiasession-findacceleratorinlineesbylinenum.md - name: IDiaSession::findAcceleratorInlineesByName href: idiasession-findacceleratorinlineesbyname.md - name: IDiaSession::findChildren href: idiasession-findchildren.md + - name: IDiaSession::findChildrenEx + href: idiasession-findchildrenex.md + - name: IDiaSession::findChildrenExByAddr + href: idiasession-findchildrenexbyaddr.md + - name: IDiaSession::findChildrenExByVA + href: idiasession-findchildrenexbyva.md + - name: IDiaSession::findChildrenExByRVA + href: idiasession-findchildrenexbyrva.md - name: IDiaSession::findFile href: idiasession-findfile.md - name: IDiaSession::findFileById href: idiasession-findfilebyid.md + - name: IDiaSession::findIlOffsetsByAddr + href: idiasession-findiloffsetsbyaddr.md + - name: IDiaSession::findIlOffsetsByRVA + href: idiasession-findiloffsetsbyrva.md + - name: IDiaSession::findIlOffsetsByVA + href: idiasession-findiloffsetsbyva.md - name: IDiaSession::findInjectedSource href: idiasession-findinjectedsource.md - name: IDiaSession::findInlineeLines @@ -604,6 +718,14 @@ href: idiasession-findinlineframesbyrva.md - name: IDiaSession::findInlineFramesByVA href: idiasession-findinlineframesbyva.md + - name: IDiaSession::findInputAssembly + href: idiasession-findinputassembly.md + - name: IDiaSession::findInputAssemblyById + href: idiasession-findinputassemblybyid.md + - name: IDiaSession::findInputAssemblyFile + href: idiasession-findinputassemblyfile.md + - name: IDiaSession::findInputAssemblyFiles + href: idiasession-findinputassemblyfiles.md - name: IDiaSession::findLines href: idiasession-findlines.md - name: IDiaSession::findLinesByAddr @@ -638,14 +760,44 @@ href: idiasession-getenumdebugstreams.md - name: IDiaSession::getEnumTables href: idiasession-getenumtables.md + - name: IDiaSession::getExports + href: idiasession-getexports.md + - name: IDiaSession::getFuncMDTokenMap + href: idiasession-getfuncmdtokenmap.md + - name: IDiaSession::getFuncMDTokenMapSize + href: idiasession-getfuncmdtokenmapsize.md + - name: IDiaSession::getFunctionFragments_RVA + href: idiasession-getfunctionfragments_rva.md + - name: IDiaSession::getFunctionFragments_VA + href: idiasession-getfunctionfragments_va.md + - name: IDiaSession::getHeapAllocationSites + href: idiasession-getheapallocationsites.md + - name: IDiaSession::getNumberOfFunctionFragments_RVA + href: idiasession-getnumberoffunctionfragments_rva.md + - name: IDiaSession::getNumberOfFunctionFragments_VA + href: idiasession-getnumberoffunctionfragments_va.md - name: IDiaSession::getSymbolsByAddr href: idiasession-getsymbolsbyaddr.md + - name: IDiaSession::getTypeMDTokenMap + href: idiasession-gettypemdtokenmap.md + - name: IDiaSession::getTypeMDTokenMapSize + href: idiasession-gettypemdtokenmapsize.md - name: IDiaSession::put_loadAddress href: idiasession-put-loadaddress.md - name: IDiaSession::symbolById href: idiasession-symbolbyid.md - name: IDiaSession::symsAreEquiv href: idiasession-symsareequiv.md + - name: IDiaSessionEx + items: + - name: IDiaSessionEx + href: idiasessionex.md + - name: IDiaSessionEx::getSourceLinkInfo + href: idiasessionex-getsourcelinkinfo.md + - name: IDiaSessionEx::isFastLinkPdb + href: idiasessionex-isfastlinkpdb.md + - name: IDiaSessionEx::isPortablePdb + href: idiasessionex-isportablepdb.md - name: IDiaSourceFile items: - name: IDiaSourceFile @@ -740,6 +892,12 @@ href: idiastackwalkhelper-searchforreturnaddressstart.md - name: IDiaStackWalkHelper::symbolForVA href: idiastackwalkhelper-symbolforva.md + - name: IDiaStackWalkHelper2 + items: + - name: IDiaStackWalkHelper2 + href: idiastackwalkhelper2.md + - name: IDiaStackWalkHelper2::GetPointerAuthenticationMask + href: idiastackwalkhelper2-getpointerauthenticationmask.md - name: IDiaSymbol items: - name: IDiaSymbol @@ -754,12 +912,6 @@ href: idiasymbol-findchildrenexbyrva.md - name: IDiaSymbol::findChildrenExByVA href: idiasymbol-findchildrenexbyva.md - - name: IDiaSymbol::findInlineFramesByAddr - href: idiasymbol-findinlineframesbyaddr.md - - name: IDiaSymbol::findInlineFramesByRVA - href: idiasymbol-findinlineframesbyrva.md - - name: IDiaSymbol::findInlineFramesByVA - href: idiasymbol-findinlineframesbyva.md - name: IDiaSymbol::findInlineeLines href: idiasymbol-findinlineelines.md - name: IDiaSymbol::findInlineeLinesByAddr @@ -768,6 +920,14 @@ href: idiasymbol-findinlineelinesbyrva.md - name: IDiaSymbol::findInlineeLinesByVA href: idiasymbol-findinlineelinesbyva.md + - name: IDiaSymbol::findInlineFramesByAddr + href: idiasymbol-findinlineframesbyaddr.md + - name: IDiaSymbol::findInlineFramesByRVA + href: idiasymbol-findinlineframesbyrva.md + - name: IDiaSymbol::findInlineFramesByVA + href: idiasymbol-findinlineframesbyva.md + - name: IDiaSymbol::findInputAssemblyFile + href: idiasymbol-findinputassemblyfile.md - name: IDiaSymbol::findSymbolsByRVAForAcceleratorPointerTag href: idiasymbol-findsymbolsbyrvaforacceleratorpointertag.md - name: IDiaSymbol::findSymbolsForAcceleratorPointerTag @@ -794,6 +954,8 @@ href: idiasymbol-get-backendmajor.md - name: IDiaSymbol::get_backEndMinor href: idiasymbol-get-backendminor.md + - name: IDiaSymbol::get_backEndQFE + href: idiasymbol-get-backendqfe.md - name: IDiaSymbol::get_baseDataOffset href: idiasymbol-get-basedataoffset.md - name: IDiaSymbol::get_baseDataSlot @@ -810,16 +972,22 @@ href: idiasymbol-get-builtinkind.md - name: IDiaSymbol::get_callingConvention href: idiasymbol-get-callingconvention.md + - name: IDiaSymbol::get_characteristics + href: idiasymbol-get-characteristics.md - name: IDiaSymbol::get_classParent href: idiasymbol-get-classparent.md - name: IDiaSymbol::get_classParentId href: idiasymbol-get-classparentid.md - name: IDiaSymbol::get_code href: idiasymbol-get-code.md + - name: IDiaSymbol::get_coffGroup + href: idiasymbol-get-coffgroup.md - name: IDiaSymbol::get_compilerGenerated href: idiasymbol-get-compilergenerated.md - name: IDiaSymbol::get_compilerName href: idiasymbol-get-compilername.md + - name: IDiaSymbol::get_constantExport + href: idiasymbol-get-constantexport.md - name: IDiaSymbol::get_constructor href: idiasymbol-get-constructor.md - name: IDiaSymbol::get_constType @@ -834,26 +1002,48 @@ href: idiasymbol-get-customcallingconvention.md - name: IDiaSymbol::get_dataBytes href: idiasymbol-get-databytes.md + - name: IDiaSymbol::get_dataExport + href: idiasymbol-get-dataexport.md - name: IDiaSymbol::get_dataKind href: idiasymbol-get-datakind.md - name: IDiaSymbol::get_editAndContinueEnabled href: idiasymbol-get-editandcontinueenabled.md + - name: IDiaSymbol::get_exceptionHandlerAddressOffset + href: idiasymbol-get-exceptionhandleraddressoffset.md + - name: IDiaSymbol::get_exceptionHandlerAddressSection + href: idiasymbol-get-exceptionhandleraddresssection.md + - name: IDiaSymbol::get_exceptionHandlerRelativeVirtualAddress + href: idiasymbol-get-exceptionhandlerrelativevirtualaddress.md + - name: IDiaSymbol::get_exceptionHandlerVirtualAddress + href: idiasymbol-get-exceptionhandlervirtualaddress.md + - name: IDiaSymbol::get_exportHasExplicitlyAssignedOrdinal + href: idiasymbol-get-exporthasexplicitlyassignedordinal.md + - name: IDiaSymbol::get_exportIsForwarder + href: idiasymbol-get-exportisforwarder.md - name: IDiaSymbol::get_farReturn href: idiasymbol-get-farreturn.md + - name: IDiaSymbol::get_finalLiveStaticSize + href: idiasymbol-get-finallivestaticsize.md - name: IDiaSymbol::get_framePadOffset href: idiasymbol-get-framepadoffset.md - name: IDiaSymbol::get_framePadSize href: idiasymbol-get-framepadsize.md - name: IDiaSymbol::get_framePointerPresent href: idiasymbol-get-framepointerpresent.md + - name: IDiaSymbol::get_frameSize + href: idiasymbol-get-framesize.md - name: IDiaSymbol::get_frontEndBuild href: idiasymbol-get-frontendbuild.md - name: IDiaSymbol::get_frontEndMajor href: idiasymbol-get-frontendmajor.md - name: IDiaSymbol::get_frontEndMinor href: idiasymbol-get-frontendminor.md + - name: IDiaSymbol::get_frontEndQFE + href: idiasymbol-get-frontendqfe.md - name: IDiaSymbol::get_function href: idiasymbol-get-function.md + - name: IDiaSymbol::get_get_hasControlFlowCheck + href: idiasymbol-get-hascontrolflowcheck.md - name: IDiaSymbol::get_guid href: idiasymbol-get-guid.md - name: IDiaSymbol::get_hasAlloca @@ -882,10 +1072,12 @@ href: idiasymbol-get-hasseh.md - name: IDiaSymbol::get_hasSetJump href: idiasymbol-get-hassetjump.md - - name: IDiaSymbol::get_hfaFloat - href: idiasymbol-get-hfafloat.md + - name: IDiaSymbol::get_hasValidPGOCounts + href: idiasymbol-get-hasvalidpgocounts.md - name: IDiaSymbol::get_hfaDouble href: idiasymbol-get-hfadouble.md + - name: IDiaSymbol::get_hfaFloat + href: idiasymbol-get-hfafloat.md - name: IDiaSymbol::get_indirectVirtualBaseClass href: idiasymbol-get-indirectvirtualbaseclass.md - name: IDiaSymbol::get_InlSpec @@ -904,16 +1096,24 @@ href: idiasymbol-get-isacceleratorstubfunction.md - name: IDiaSymbol::get_isAggregated href: idiasymbol-get-isaggregated.md + - name: IDiaSymbol::get_isConstructorVirtualBase + href: idiasymbol-get-isconstructorvirtualbase.md - name: IDiaSymbol::get_isCTypes href: idiasymbol-get-isctypes.md - name: IDiaSymbol::get_isCVTCIL href: idiasymbol-get-iscvtcil.md + - name: IDiaSymbol::get_isCxxReturnUdt + href: idiasymbol-get-iscxxreturnudt.md - name: IDiaSymbol::get_isDataAligned href: idiasymbol-get-isdataaligned.md - name: IDiaSymbol::get_isHLSLData href: idiasymbol-get-ishlsldata.md - name: IDiaSymbol::get_isHotpatchable href: idiasymbol-get-ishotpatchable.md + - name: IDiaSymbol::get_isInterfaceUdt + href: idiasymbol-get-isinterfaceudt.md + - name: IDiaSymbol::get_isLocationControlFlowDependent + href: idiasymbol-get-islocationcontrolflowdependent.md - name: IDiaSymbol::get_isLTCG href: idiasymbol-get-isltcg.md - name: IDiaSymbol::get_isMatrixRowMajor @@ -926,12 +1126,18 @@ href: idiasymbol-get-isnaked.md - name: IDiaSymbol::get_isOptimizedAway href: idiasymbol-get-isoptimizedaway.md + - name: IDiaSymbol::get_isOptimizedForSpeed + href: idiasymbol-get-isoptimizedforspeed.md + - name: IDiaSymbol::get_isPGO + href: idiasymbol-get-ispgo.md - name: IDiaSymbol::get_isPointerBasedOnSymbolValue href: idiasymbol-get-ispointerbasedonsymbolvalue.md - name: IDiaSymbol::get_isPointerToDataMember href: idiasymbol-get-ispointertodatamember.md - name: IDiaSymbol::get_isPointerToMemberFunction href: idiasymbol-get-ispointertomemberfunction.md + - name: IDiaSymbol::get_isRefUdt + href: idiasymbol-get-isrefudt.md - name: IDiaSymbol::get_isReturnValue href: idiasymbol-get-isreturnvalue.md - name: IDiaSymbol::get_isRTCs @@ -948,8 +1154,12 @@ href: idiasymbol-get-isstatic.md - name: IDiaSymbol::get_isStripped href: idiasymbol-get-isstripped.md + - name: IDiaSymbol::get_isValueUdt + href: idiasymbol-get-isvalueudt.md - name: IDiaSymbol::get_isVirtualInheritance href: idiasymbol-get-isvirtualinheritance.md + - name: IDiaSymbol::get_isWinRTPointer + href: idiasymbol-get-iswinrtpointer.md - name: IDiaSymbol::get_language href: idiasymbol-get-language.md - name: IDiaSymbol::get_length @@ -982,6 +1192,8 @@ href: idiasymbol-get-managed.md - name: IDiaSymbol::get_memorySpaceKind href: idiasymbol-get-memoryspacekind.md + - name: IDiaSymbol::get_modifierValues + href: idiasymbol-get-modifiervalues.md - name: IDiaSymbol::get_msil href: idiasymbol-get-msil.md - name: IDiaSymbol::get_name @@ -990,6 +1202,8 @@ href: idiasymbol-get-nested.md - name: IDiaSymbol::get_noInline href: idiasymbol-get-noinline.md + - name: IDiaSymbol::get_noNameExport + href: idiasymbol-get-nonameexport.md - name: IDiaSymbol::get_noReturn href: idiasymbol-get-noreturn.md - name: IDiaSymbol::get_noStackOrdering @@ -1006,6 +1220,8 @@ href: idiasymbol-get-numberofregisterindices.md - name: IDiaSymbol::get_numberOfRows href: idiasymbol-get-numberofrows.md + - name: IDiaSymbol::get_numericProperties + href: idiasymbol-get-numericproperties.md - name: IDiaSymbol::get_objectFileName href: idiasymbol-get-objectfilename.md - name: IDiaSymbol::get_objectPointerType @@ -1020,14 +1236,26 @@ href: idiasymbol-get-offsetinudt.md - name: IDiaSymbol::get_optimizedCodeDebugInfo href: idiasymbol-get-optimizedcodedebuginfo.md + - name: IDiaSymbol::get_ordinal + href: idiasymbol-get-ordinal.md - name: IDiaSymbol::get_overloadedOperator href: idiasymbol-get-overloadedoperator.md - name: IDiaSymbol::get_packed href: idiasymbol-get-packed.md - name: IDiaSymbol::get_paramBasePointerRegisterId href: idiasymbol-get-parambasepointerregisterid.md + - name: IDiaSymbol::get_PGODynamicInstructionCount + href: idiasymbol-get-pgodynamicinstructioncount.md + - name: IDiaSymbol::get_PGOEdgeCount + href: idiasymbol-get-pgoedgecount.md + - name: IDiaSymbol::get_PGOEntryCount + href: idiasymbol-get-pgoentrycount.md + - name: IDiaSymbol::get_phaseName + href: idiasymbol-get-phasename.md - name: IDiaSymbol::get_platform href: idiasymbol-get-platform.md + - name: IDiaSymbol::get_privateExport + href: idiasymbol-get-privatexport.md - name: IDiaSymbol::get_pure href: idiasymbol-get-pure.md - name: IDiaSymbol::get_rank @@ -1058,8 +1286,10 @@ href: idiasymbol-get-slot.md - name: IDiaSymbol::get_sourceFileName href: idiasymbol-get-sourcefilename.md - - name: IDiaSymbol::getSrcLineOnTypeDefn - href: idiasymbol-getsrclineontypedefn.md + - name: IDiaSymbol::get_staticSize + href: idiasymbol-get-staticsize.md + - name: IDiaSymbol::get_strictGSCheck + href: idiasymbol-get-strictgscheck.md - name: IDiaSymbol::get_stride href: idiasymbol-get-stride.md - name: IDiaSymbol::get_subType @@ -1112,6 +1342,8 @@ href: idiasymbol-get-unmodifiedtype.md - name: IDiaSymbol::get_unmodifiedTypeId href: idiasymbol-get-unmodifiedtypeid.md + - name: IDiaSymbol::get_unused + href: idiasymbol-get-unused.md - name: IDiaSymbol::get_upperBound href: idiasymbol-get-upperbound.md - name: IDiaSymbol::get_upperBoundId @@ -1128,16 +1360,108 @@ href: idiasymbol-get-virtualbasedispindex.md - name: IDiaSymbol::get_virtualBaseOffset href: idiasymbol-get-virtualbaseoffset.md - - name: IDiaSymbol::get_virtualBaseTableType - href: idiasymbol-get-virtualbasetabletype.md - name: IDiaSymbol::get_virtualBasePointerOffset href: idiasymbol-get-virtualbasepointeroffset.md + - name: IDiaSymbol::get_virtualBaseTableType + href: idiasymbol-get-virtualbasetabletype.md - name: IDiaSymbol::get_virtualTableShape href: idiasymbol-get-virtualtableshape.md - name: IDiaSymbol::get_virtualTableShapeId href: idiasymbol-get-virtualtableshapeid.md - name: IDiaSymbol::get_volatileType href: idiasymbol-get-volatiletype.md + - name: IDiaSymbol::get_wasInlined + href: idiasymbol-get-wasinlined.md + - name: IDiaSymbol::getBindID + href: idiasymbol-get-bindid.md + - name: IDiaSymbol::getBindSlot + href: idiasymbol-get-bindslot.md + - name: IDiaSymbol::getBindSpace + href: idiasymbol-get-bindspace.md + - name: IDiaSymbol::getSrcLineOnTypeDefn + href: idiasymbol-getsrclineontypedefn.md + - name: IDiaSymbol2 + items: + - name: IDiaSymbol2 + href: idiasymbol2.md + - name: IDiaSymbol2::get_isObjCCategory + href: idiasymbol2-get-isobjccategory.md + - name: IDiaSymbol2::get_isObjCClass + href: idiasymbol2-get-isobjcclass.md + - name: IDiaSymbol2::get_isObjCProtocol + href: idiasymbol2-get-isobjcprotocol.md + - name: IDiaSymbol3 + items: + - name: IDiaSymbol3 + href: idiasymbol3.md + - name: IDiaSymbol3::get_inlinee + href: idiasymbol3-get-inlinee.md + - name: IDiaSymbol3::get_inlineeId + href: idiasymbol3-get-inlineeid.md + - name: IDiaSymbol4 + items: + - name: IDiaSymbol4 + href: idiasymbol4.md + - name: IDiaSymbol4::get_noexcept + href: idiasymbol4-get-noexcept.md + - name: IDiaSymbol5 + items: + - name: IDiaSymbol5 + href: idiasymbol5.md + - name: IDiaSymbol5::get_hasAbsoluteAddress + href: idiasymbol5-get-hasabsoluteaddress.md + - name: IDiaSymbol6 + items: + - name: IDiaSymbol6 + href: idiasymbol6.md + - name: IDiaSymbol6::get_isStaticMemberFunc + href: idiasymbol6-get-isstaticmemberfunc.md + - name: IDiaSymbol7 + items: + - name: IDiaSymbol7 + href: idiasymbol7.md + - name: IDiaSymbol7::get_isSignRet + href: idiasymbol7-get-issignret.md + - name: IDiaSymbol8 + items: + - name: IDiaSymbol8 + href: idiasymbol8.md + - name: IDiaSymbol8::get_associatedSymbolAddr + href: idiasymbol8-get-associatedsymboladdr.md + - name: IDiaSymbol8::get_associatedSymbolKind + href: idiasymbol8-get-associatedsymbolkind.md + - name: IDiaSymbol8::get_associatedSymbolOffset + href: idiasymbol8-get-associatedsymboloffset.md + - name: IDiaSymbol8::get_associatedSymbolRva + href: idiasymbol8-get-associatedsymbolrva.md + - name: IDiaSymbol8::get_associatedSymbolSection + href: idiasymbol8-get-associatedsymbolsection.md + - name: IDiaSymbol8::get_coroutineKind + href: idiasymbol8-get-coroutinekind.md + - name: IDiaSymbol9 + items: + - name: IDiaSymbol9 + href: idiasymbol9.md + - name: IDiaSymbol9::get_framePadOffset + href: idiasymbol9-get-framepadoffset.md + - name: IDiaSymbol9::get_framePadSize + href: idiasymbol9-get-framepadsize.md + - name: IDiaSymbol9::get_isRTCs + href: idiasymbol9-get-isrtcs.md + - name: IDiaSymbol10 + items: + - name: IDiaSymbol10 + href: idiasymbol10.md + - name: IDiaSymbol10::get_sourceLink + href: idiasymbol10-get-sourcelink.md + - name: IDiaSymbol11 + items: + - name: IDiaSymbol11 + href: idiasymbol11.md + - name: IDiaSymbol11::get_discriminatedUnionTag + href: idiasymbol11-get-discriminateduniontag.md + - name: IDiaSymbol11::get_tagRanges + href: idiasymbol11-get-tagranges.md - name: IDiaTable items: - name: IDiaTable @@ -1156,26 +1480,46 @@ href: enumerations-and-structures.md - name: BasicType href: basictype.md + - name: Common HRESULT Values + href: common-hresult-values.md - name: CV_access_e href: cv-access-e.md + - name: CV_AssociationKind_e + href: cv-associationkind-e.md + - name: CV_builtin_e + href: cv-builtin-e.md - name: CV_call_e href: cv-call-e.md - name: CV_CFL_LANG href: cv-cfl-lang.md + - name: CV_CoroutineKind_e + href: cv-coroutinekind-e.md - name: CV_CPU_TYPE_e href: cv-cpu-type-e.md + - name: CV_HLSLMemorySpace_e + href: cv-hlslmemoryspace-e.md + - name: CV_HLSLREG_e + href: cv-hlslreg-e.md - name: CV_HREG_e href: cv-hreg-e.md + - name: CV_modifier_e + href: cv-modifier-e.md + - name: CV_SourceChksum_t + href: cv-sourcechksum-t.md - name: DataKind href: datakind.md - name: DiaAddressMapEntry href: diaaddressmapentry.md + - name: DiaTagValue + href: diatagvalue.md - name: LocationType href: locationtype.md - name: MemoryTypeEnum href: memorytypeenum.md - name: NameSearchOptions href: namesearchoptions.md + - name: PFNMINIPDBERRORCALLBACK2 + href: pfnminipdberrorcallback2.md - name: StackFrameTypeEnum href: stackframetypeenum.md - name: SymTagEnum diff --git a/docs/debugger/debug-interface-access/udtkind.md b/docs/debugger/debug-interface-access/udtkind.md index d8672ed0bd9..0e79c8e14bf 100644 --- a/docs/debugger/debug-interface-access/udtkind.md +++ b/docs/debugger/debug-interface-access/udtkind.md @@ -1,7 +1,7 @@ --- description: "Describes the variety of user-defined type (UDT)." title: "UdtKind" -ms.date: "11/04/2016" +ms.date: "07/22/2024" ms.topic: "reference" dev_langs: - "C++" @@ -35,6 +35,7 @@ enum UdtKind { | UdtClass | UDT is a class. | | UdtUnion | UDT is a union. | | UdtInterface | UDT is an interface. | +| UdtTaggedUnion | UDT is a tagged union. | ## Remarks The values in this enumeration are returned by the [IDiaSymbol::get_udtKind](../../debugger/debug-interface-access/idiasymbol-get-udtkind.md) method.