CompilandDetails
编译单位信息在带有 SymTagCompiland
标记(较少细节)和 SymTagCompilandDetails
(较多细节)标记的符号之间拆分。 SymTagCompilandDetails
提供了大量关于编译单位的信息,这是 SymTagCompiland
符号无法提供的。
属性
下表显示了对此符号类型有效的属性。
属性 | 数据类型 | 说明 |
---|---|---|
IDiaSymbol::get_backEndBuild | DWORD |
编译器的后端生成号。 |
IDiaSymbol::get_backEndMajor | DWORD |
编译器的后端主版本号。 |
IDiaSymbol::get_backEndMinor | DWORD |
编译器的后端次要版本号。 |
IDiaSymbol::get_compilerName | BSTR |
生成此编译单位的编译器的名称(仅在 DIA SDK V8.0 或更高版本中)。 |
IDiaSymbol::get_editAndContinueEnabled | BOOL |
如果在编译时启用了“编辑并继续”,则为 TRUE 。 |
IDiaSymbol::get_frontEndBuild | DWORD |
编译器的前端生成号。 |
IDiaSymbol::get_frontEndMajor | DWORD |
编译器的前端主版本号。 |
IDiaSymbol::get_frontEndMinor | DWORD |
编译器的前端次要版本号。 |
IDiaSymbol::get_hasDebugInfo | BOOL |
如果此编译单位具有调试信息,则为 TRUE (仅在 DIA SDK V8.0 或更高版本中)。 |
IDiaSymbol::get_hasManagedCode | BOOL |
如果此编译单位包含托管代码,则为 TRUE (仅在 DIA SDK v8.0 或更高版本中)。 |
IDiaSymbol::get_hasSecurityChecks | BOOL |
如果编译单位是用 /GS(缓冲区安全检查)编译器开关编译的,则为 TRUE (仅在 DIA SDK V8.0 或更高版本中)。 |
IDiaSymbol::get_isCVTCIL | BOOL |
如果编译单位已从公共中间语言 (CIL) 代码转换为本机代码,则为 TRUE 。 |
IDiaSymbol::get_isDataAligned | BOOL |
如果用户定义类型 (UDT) 已与某些指定的内存边界对齐,则为 TRUE (仅在 DIA SDK V8.0 或更高版本中)。 |
IDiaSymbol::get_isHotpatchable | BOOL |
如果编译单位是用 /hotpatch(创建可热修补的映像)编译器开关编译的,则为 TRUE (仅在 DIA SDK v8.0 或更高版本中)。 |
IDiaSymbol::get_isLTCG | BOOL |
如果编译单位是用 /LTCG(链接时间代码生成)编译器开关编译的,则为 TRUE (仅在 DIA SDK V8.0 或更高版本中)。 |
IDiaSymbol::get_isMSILNetmodule | BOOL |
如果编译单位是 Microsoft 中间语言 (MSIL) 模块,则为 TRUE(仅在 DIA SDK v8.0 或更高版本中)。 |
IDiaSymbol::get_language | DWORD |
源代码语言。 |
IDiaSymbol::get_lexicalParent | IDiaSymbol* |
编译单位的符号。 |
IDiaSymbol::get_lexicalParentId | DWORD |
词法父级符号的 ID。 |
IDiaSymbol::get_platform | DWORD |
编译编译单位的平台(CV_CPU_TYPE_e Enumeration 值之一)。 |
IDiaSymbol::get_symIndexId | DWORD |
符号的索引 ID。 |
IDiaSymbol::get_symTag | DWORD |
返回 SymTagCompilandDetails (SymTagEnum Enumeration 值之一)。 |
备注
编译器通常以称为两遍编译器的形式提供;在某些编译器版本中,每遍都由单独的程序处理。 它们分别称为前端和后端编译器,因此是后端版本号和前端版本号的符号属性。