DkmClrModuleInstance 类

定义

“DkmClrModuleInstance”用于加载到公共语言运行时的模块。

派生类:DkmClrNcModuleInstance

public ref class DkmClrModuleInstance : Microsoft::VisualStudio::Debugger::DkmModuleInstance
[System.Runtime.InteropServices.Guid("29da4ffa-6063-6232-46dd-64d14cf56ddf")]
public class DkmClrModuleInstance : Microsoft.VisualStudio.Debugger.DkmModuleInstance
[<System.Runtime.InteropServices.Guid("29da4ffa-6063-6232-46dd-64d14cf56ddf")>]
type DkmClrModuleInstance = class
    inherit DkmModuleInstance
Public Class DkmClrModuleInstance
Inherits DkmModuleInstance
继承
继承
派生
属性

属性

AppDomain

DkmClrAppDomain 表示正在调试的进程内的 CLR 应用域。

BaseAddress

[可选]模块加载位置的起始内存地址。 如果模块未在连续内存块中加载,则此值将为零。

(继承自 DkmModuleInstance)
ClrFlags

指示已由 CLR 加载的 DkmModuleInstance 特征的标志。

Connection

这表示监视器与 IDE 之间的连接。 如果监视器与 IDE 在同一进程中运行,则它可以是本地连接,也可以是远程连接。 在监视过程中,只有一个连接。

(继承自 DkmModuleInstance)
Flags

指示 DkmModuleInstance 特征的标志。

(继承自 DkmModuleInstance)
FullName

完全限定的模块名称。 对于基于文件的模块,这是模块 (的完整路径,例如:c:\windows\system32\kernel32.dll。

(继承自 DkmModuleInstance)
ILImageSize

指定此模块的 IL 映像的大小,因为它与符号服务器查找相关。 对于桌面.NET Framework,这将指定与 ngen 中的原始图像大小不同的 IL 映像大小。 这是因为仅 IL 映像是在符号服务器上编制索引的映像。 对于 .NET Core ngen 和 ready to run,这将指定原始映像大小,因为 ngen/ready to run 映像是索引的内容,我们不希望仅基于 IL 图像大小执行查找。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

IsDisabled

指示此模块实例是否已禁用。 调试器在很大程度上会忽略禁用的模块。 对于本机模块,禁用的模块的地址范围被视为未映射。 对于 CLR 模块,这些模块中的任何帧都隐藏在调用堆栈中。

(继承自 DkmModuleInstance)
IsUnloaded

如果已为此对象引发“unloaded”事件,则返回 true (示例:DkmThread::Unload) 或对象已关闭。 请注意,检查此状态时必须小心,因为如果不进行同步,则返回的状态在读取指令后可能不再准确。

(继承自 DkmDataContainer)
LoadContext

加载此模块的上下文的字符串说明。 例如:“Win32”或“CLR v2.0.50727:默认域”。

(继承自 DkmModuleInstance)
LoadOrder

加载到并包括此模块的模块实例数的整数计数。 每个运行时实例跟踪其自己的加载顺序计数。

(继承自 DkmModuleInstance)
MemoryLayout

指示模块在内存中的布局方式的枚举。

(继承自 DkmModuleInstance)
MinidumpInfoPart

[可选]“MinidumpInfoPart”用于传达有关小型转储的 DkmProcess 中的模块的其他信息。

(继承自 DkmModuleInstance)
Module

[可选] (与此模块实例关联的 DkmModule) 模块的符号处理程序表示形式。 此值最初为 null,并且当符号与此模块实例关联时分配。

(继承自 DkmModuleInstance)
Mvid

已加载模块中的模块版本标识符。 生成 dll/exe 时,这是由链接器/编译器嵌入到 exe/dll 中的唯一值。 每次编译 dll/exe 时都会生成一个新值。

Name

模块名称的简短表示形式。 对于基于文件的模块,这是文件名和扩展名 (例如:kernel32.dll) 。

(继承自 DkmModuleInstance)
Process

DkmProcess 表示正在调试的目标进程。 调试器调试进程,因此这是调试的基本单元。 DkmProcess 可以表示系统进程或虚拟进程,例如小型转用。

(继承自 DkmModuleInstance)
RuntimeInstance

表示在目标进程中运行的 CLR 实例。

Size

[可选]模块内存区域中的字节数。 如果模块未在连续的内存块中加载,则此值将为零。

(继承自 DkmModuleInstance)
SymbolFileId

[可选]包含查找此模块的符号所需的信息。 在 Win32 上,此信息包含在IMAGE_DEBUG_DIRECTORY中。

(继承自 DkmModuleInstance)
TagValue

DkmModuleInstance 是一个抽象基类。 此枚举指示此对象是哪个派生类的实例。

(继承自 DkmModuleInstance)
TimeDateStamp

生成已加载模块的日期/时间。 此值是从加载的模块的IMAGE_NT_HEADERS获取的。 度量单位是 FILETIME 值,它是一个 64 位值,表示自 1601 年 1 月 1 日 (UTC) 以来的 100 纳秒间隔数。

(继承自 DkmModuleInstance)
UniqueId

唯一标识 DkmModuleInstance 对象。

(继承自 DkmModuleInstance)
Version

[可选]文件版本信息。

(继承自 DkmModuleInstance)

方法

CanDecompileMethod(DkmClrMethodId)

提供有关是否可以反编译指定方法的信息。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) 中引入的。

CanDecompileModule(DkmDecompilerMode)

提供有关是否可以在给定模式下反编译模块的信息。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7) 中引入的。

ClearTransitionModuleFlag()

运行时实例调用此方法将模块标记为边界模块。 单步执行时,运行时应检查步骤是否达到边界模块,并启动单步仲裁(如果有)。 请注意,某些运行时可能无法接受此请求。 调度程序将保留已调用 FlagAsTransitionModule 的次数的计数。 仅当对 ClearTransitionModuleFlag 的匹配调用数时,该模块将不再被视为转换模块。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

(继承自 DkmModuleInstance)
Create(String, String, UInt64, DkmModuleVersion, DkmSymbolFileId, DkmModuleFlags, DkmModuleMemoryLayout, UInt64, UInt32, UInt32, String, DkmClrRuntimeInstance, Guid, DkmClrModuleFlags, DkmClrAppDomain, Boolean, DkmModule, DkmModuleInstance+MinidumpInfo, DkmDataItem)

Create新的 DkmClrModuleInstance 对象实例。

此方法将发送 ModuleInstanceLoad 事件。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

Create(String, String, UInt64, DkmModuleVersion, DkmSymbolFileId, DkmModuleFlags, DkmModuleMemoryLayout, UInt64, UInt32, UInt32, String, DkmClrRuntimeInstance, Guid, DkmClrModuleFlags, DkmClrAppDomain, UInt32, Boolean, DkmModule, DkmModuleInstance+MinidumpInfo, DkmDataItem)

Create新的 DkmClrModuleInstance 对象实例。

此方法将发送 ModuleInstanceLoad 事件。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

Decompile()

将模块的代码反编译为 C#,并创建嵌入此源的新可移植 PDB。 共享此符号文件的所有模块都将开始使用这些更新的符号。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5) 中引入的。

(继承自 DkmModuleInstance)
Decompile(DkmDecompilerMode, String, Int32)

将模块的代码反编译为 C#,并创建嵌入此源的新可移植 PDB。 共享此符号文件的所有模块都将开始使用这些更新的符号。 实现应在失败时返回S_OK,并通过“HR”和“ErrorMessage”参数返回实际的 HRESULT 和任何其他错误信息。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7) 中引入的。

Decompile(DkmWorkList, DkmCompletionRoutine<DkmDecompileAsyncResult>)

将模块的代码反编译为 C#,并创建嵌入此源的新可移植 PDB。 共享此符号文件的所有模块都将开始使用这些更新的符号。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5) 中引入的。

(继承自 DkmModuleInstance)
Decompile(DkmWorkList, DkmCompletionRoutine<DkmDecompileAsyncResult173>)

将模块的代码反编译为 C#,并创建嵌入此源的新可移植 PDB。 共享此符号文件的所有模块都将开始使用这些更新的符号。 实现应在失败时返回S_OK,并通过“HR”和“ErrorMessage”参数返回实际的 HRESULT 和任何其他错误信息。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) 中引入的。

(继承自 DkmModuleInstance)
Decompile(DkmWorkList, DkmDecompilerMode, DkmCompletionRoutine<DkmDecompileAsyncResult173>)

将模块的代码反编译为 C#,并创建嵌入此源的新可移植 PDB。 共享此符号文件的所有模块都将开始使用这些更新的符号。 实现应在失败时返回S_OK,并通过“HR”和“ErrorMessage”参数返回实际的 HRESULT 和任何其他错误信息。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7) 中引入的。

Decompile(String, Int32)

将模块的代码反编译为 C# 并创建嵌入此源的新可移植 PDB。 共享此符号文件的所有模块都将开始使用这些更新的符号。 实现应在失败时返回S_OK,并通过“HR”和“ErrorMessage”参数返回实际的 HRESULT 和任何其他错误信息。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) 中引入的。

(继承自 DkmModuleInstance)
DecompileDocument(DkmWorkList, String, DkmCompletionRoutine<DkmDecompileAsyncResult173>)

将文档的代码反编译为 C#,并使用必要的调试信息和嵌入源更新与包含模块关联的符号文件。 共享此符号文件的所有模块都将开始使用这些更新的符号。 实现应在失败时返回S_OK,并通过“HR”和“ErrorMessage”参数返回实际的 HRESULT 和任何其他错误信息。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) 中引入的。

DecompileDocument(String, String, Int32)

将文档的代码反编译为 C#,并使用必要的调试信息和嵌入源更新与包含模块关联的符号文件。 共享此符号文件的所有模块都将开始使用这些更新的符号。 实现应在失败时返回S_OK,并通过“HR”和“ErrorMessage”参数返回实际的 HRESULT 和任何其他错误信息。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) 中引入的。

DecompileMethods(DkmWorkList, ReadOnlyCollection<DkmClrMethodId>, DkmCompletionRoutine<DkmDecompileAsyncResult173>)

将方法的代码反编译为 C#,并使用必要的调试信息和嵌入源更新与包含模块关联的符号文件。 共享此符号文件的所有模块都将开始使用这些更新的符号。 实现应在失败时返回S_OK,并通过“HR”和“ErrorMessage”参数返回实际的 HRESULT 和任何其他错误信息。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) 中引入的。

DecompileMethods(ReadOnlyCollection<DkmClrMethodId>, String, Int32)

将方法的代码反编译为 C#,并使用必要的调试信息和嵌入源更新与包含模块关联的符号文件。 共享此符号文件的所有模块都将开始使用这些更新的符号。 实现应在失败时返回S_OK,并通过“HR”和“ErrorMessage”参数返回实际的 HRESULT 和任何其他错误信息。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) 中引入的。

FlagAsTransitionModule()

运行时实例调用此方法将模块标记为边界模块。 单步执行时,如果步骤已到达边界模块,运行时应检查,并启动单步执行仲裁(如果有)。 请注意,某些运行时可能无法接受此请求。 调度程序将保留已调用的次数的计数。 仅当对 ClearTransitionModuleFlag 进行匹配数量的调用时,该模块才不再被视为转换模块。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

(继承自 DkmModuleInstance)
GetBaselineMetaDataBytes()

从给定模块获取 CLR 元数据的基线字节。

此 API 是在 Visual Studio 15 Update 5 (DkmApiVersion.VS15Update5) 中引入的。

GetBaselineMetaDataBytesPtr(UInt32)

获取指向给定模块的原始元数据字节的指针。

位置约束:无。

此 API 是在 Visual Studio 15 Update 5 (DkmApiVersion.VS15Update5) 中引入的。

GetCorObject()

提供对 ICorDebugModule 对象的直接访问,表达式计算器或其他组件可用于检查应用域。

返回的接口只能用于检查目标进程,并且绝不应用于控制执行 (无单步执行、无断点、无继续等) 。 不支持这样做,会导致未定义的行为。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

GetDataItem<T>()

获取已添加到此容器实例的“T”实例。 如果此容器不包含“T”,则此函数将返回 null。

(继承自 DkmDataContainer)
GetEncAvailability(String)

检查相应的托管模块实例是否支持“编辑并继续”。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 16 Update 1 (DkmApiVersion.VS16Update1) 中引入的。

GetEncILDelta(Int32)

负责查询与 CLR 模块实例关联的 IL 增量。 IL 增量是代码更改产生的字节,这可能会影响多个方法。 在模块中查询有关修改方法的信息时,VIL 会使用此信息。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 16 Update 3 (DkmApiVersion.VS16Update3) 中引入的。

GetGPUDisassembly(UInt64, UInt32, Boolean, Boolean)

获取 debuggee 模块实例中地址范围的反汇编。

(继承自 DkmModuleInstance)
GetGPUDisassemblySize()

返回 debuggee 模块实例中的反汇编大小。

(继承自 DkmModuleInstance)
GetLocalSignatureToken(Int32)

获取给定方法令牌的本地变量签名的签名令牌。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

GetMetaDataBytes()

从给定模块获取 CLR 元数据的字节。 然后,这些字节可以传递到 IMetaDataDispenser::OpenScope 以解码元数据。

GetMetaDataBytesPtr(UInt32)

获取指向给定模块的原始元数据字节的指针。

注意:如果模块) 卸载或 b) 修改,则此指针值将变为无效。 若要检测这些方案,) 向模块实例添加数据项。 当模块实例) 卸载时, (调用 OnClose 方法后,指针将无效。 b) 实现 IDkmClrModuleModifiedNotification。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

GetMetaDataFileInfo(Boolean, UInt32, UInt32)

获取直接从磁盘上的文件读取元数据所需的信息。

此 API 是在 Visual Studio 16 Update 2 (DkmApiVersion.VS16Update2) 中引入的。

GetMetaDataImport()

从给定模块获取 CLR 元数据。 有关元数据的详细信息,请参阅 MSDN 中的 IMetaDataImport 文档。

注意:从托管代码使用此 API 时,调用方必须非常小心。 IMetaDataImport 实现可以保留调试对象文件的文件句柄,并且仅当 COM 引用计数达到零时,文件句柄才会关闭。 因此,它必须 (Marshal.IsComObject + Marshal.ReleaseComObject) 手动发布,而不是等待 GC 检测到对象可以释放。 测试时,请确保调试对象文件至少有 64KB 的元数据,因为元数据读取器在处理小文件时不会锁定文件以供读取。

GetMetadataStatus()

获取元数据状态。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

GetMethodTokens(DkmWorkList, String, String, DkmCompletionRoutine<DkmGetMethodTokensAsyncResult>)

提供一种机制,用于获取给定类的方法的元数据令牌。 等效于 IMetaDataImport::EnumMethodsWithName。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

GetMethodTokens(String, String, Int32[])

提供一种机制,用于获取给定类的方法的元数据令牌。 等效于 IMetaDataImport::EnumMethodsWithName。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

GetNextGPUInstructionAddress(UInt64)

返回相对于起始地址的下一个指令的地址。

(继承自 DkmModuleInstance)
GetSymbolLoadInformation()

返回一个字符串,描述在其中搜索符号的各种位置以及检查该位置的结果。 此信息用于填充模块窗口中的“符号加载信息”。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

(继承自 DkmModuleInstance)
GetSymbolSearchResult()

检索与此模块实例关联的任何符号搜索结果。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) 中引入的。

(继承自 DkmModuleInstance)
GetSymbolSearchResult(DkmWorkList, DkmCompletionRoutine<DkmGetSymbolSearchResultAsyncResult>)

检索与此模块实例关联的任何符号搜索结果。

此方法会将新工作项追加到指定工作列表,并在追加工作项后返回。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) 中引入的。

(继承自 DkmModuleInstance)
GetSymbolStatusMessage(Boolean)

获取当前符号状态的本地化字符串说明。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

(继承自 DkmModuleInstance)
GetSymbolStatusMessage(DkmWorkList, Boolean, DkmCompletionRoutine<DkmGetSymbolStatusMessageAsyncResult>)

获取当前符号状态的本地化字符串说明。

此方法会将新工作项追加到指定工作列表,并在追加工作项后返回。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

(继承自 DkmModuleInstance)
GetSymUnmanagedReader()

此 API 为 CLR 模块提供部分 ISymUnmanagedReader2 实现。

位置约束:向远程连接的两端提供 ISymUnmanagedReader2 的部分实现。

此 API 是在 Visual Studio 15 RTM (DkmApiVersion.VS15RTM) 中引入的。

GetTypeIdForTypeName(String)

返回给定类型名称的类型 ID。

此 API 是在 Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) 中引入的。

InterpretManagedMethod(DkmClrMethodId, ReadOnlyCollection<DkmClrType>, ReadOnlyCollection<DkmClrType>, DkmILInterpreterValue, ReadOnlyCollection<DkmILInterpreterValue>, Int32, DkmILInterpreterOptions, String)

通过解释方法的 MSIL 代码来模拟对象上方法的执行。 方法的结果将返回给调用方。 但是,与函数计算不同,该方法实际上在目标中运行,解释方法实际上并不执行方法,而只是模拟方法的行为。 由于方法永远不会实际执行,因此在方法解释完成后,将放弃该方法执行产生的任何副作用,使目标进程在调用前保持与该进程相同的状态。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

IsSuppressed()

此方法允许组件确定是否取消了模块的模块加载事件。

此 API 是在 Visual Studio 12 Update 3 (DkmApiVersion.VS12Update3) 中引入的。

(继承自 DkmModuleInstance)
IsTransitionModule()

如果任何运行时实例已将此模块标记为转换模块,则返回 true。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

(继承自 DkmModuleInstance)
IsUserCode()

确定模块是否被视为用户代码。

位置约束:可以从 IDE 组件调用此方法。 从 Visual Studio 2013 Update 2 开始,还可以从托管代码的监视组件调用它。 从 Visual Studio 2017 Update 8 开始,API 的 CallDirection 已从“Normal”设置为“双向”,现在可以从任何组件调用,AsyncCaller 已设置为“true”,CallerLocationConstraint 在“NoMarshalling”中设置为“None”。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

(继承自 DkmModuleInstance)
IsUserCode(DkmWorkList, DkmCompletionRoutine<DkmModuleInstanceIsUserCodeAsyncResult>)

确定模块是否被视为用户代码。

此方法会将新工作项追加到指定工作列表,并在追加工作项后返回。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:可以从 IDE 组件调用此方法。 从 Visual Studio 2013 Update 2 开始,还可以从托管代码的监视组件调用它。 从 Visual Studio 2017 Update 8 开始,API 的 CallDirection 已从“Normal”设置为“双向”,现在可以从任何组件调用,AsyncCaller 已设置为“true”,CallerLocationConstraint 在“NoMarshalling”中设置为“None”。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

(继承自 DkmModuleInstance)
OnBinaryLoaded(String)

引发 BinaryLoaded 事件。 实现事件接收器接口的组件将收到事件通知。 通知所有组件后,控制将返回。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

(继承自 DkmModuleInstance)
OnBinaryReloadOpportunity()

引发 BinaryReloadOpportunity 事件。 实现事件接收器接口的组件将收到事件通知。 通知所有组件后,控制将返回。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 12 Update 2 (DkmApiVersion.VS12Update2) 中引入的。

(继承自 DkmModuleInstance)
OnModuleModified()

当模块由于 EnC 或动态发出的代码而更改时,将调用此方法。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

(继承自 DkmModuleInstance)
OnSymbolsLoaded(DkmModule, Boolean)

此方法由基本调试监视器调用,以响应对 IDkmModuleSymbolsLoaded.RaiseSymbolsLoadedEvent 的调用。 必须从事件线程或请求线程(作为重载的一部分)调用此方法。 基本调试监视器应同步切换到事件线程,暂停目标进程,并调用 OnSymbolsLoaded。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

(继承自 DkmModuleInstance)
OnSymbolsUpdated(DkmModule)

引发 ModuleSymbolsUpdated 事件。 实现事件接收器接口的组件将收到事件通知。 通知所有组件后,控制将返回。

(继承自 DkmModuleInstance)
ReadSymbols()

此方法由符号处理程序调用,以读取其符号驻留在调试对象的内存中的 DkmModuleInstances 的符号。

(继承自 DkmModuleInstance)
RemoveDataItem<T>()

从此容器中删除“T”的实例。 通常不需要调用此方法,因为数据容器将在对象关闭时自动清空。

(继承自 DkmDataContainer)
ResolveTypeName(String, ReadOnlyCollection<DkmClrType>)

将类型名称解析为类型。 如果类型为泛型,则不会实例化泛型参数。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

SetDataItem<T>(DkmDataCreationDisposition, T)

将新项放在数据容器中。

(继承自 DkmDataContainer)
SetDisabled(Boolean)

汇报模块的禁用状态。 只能从 ModuleInstanceLoad 事件调用此方法。 禁用模块时,通常还会取消模块加载事件。

(继承自 DkmModuleInstance)
SetModule(DkmModule, Boolean)

此方法由符号提供程序调用,以将 DkmModule 与 DkmModuleInstance 相关联,并触发 ModuleSymbolsLoaded 事件。 对于 DkmModuleInstance 对象,它只能调用一次。 调用此 API 将建立 DkmModule-DkmModuleInstance<> 关联,并引发 ModuleSymbolsLoaded 事件。

(继承自 DkmModuleInstance)
TryLoadBinary()

尝试使用更新的符号路径加载以前无法加载的二进制文件。

(继承自 DkmModuleInstance)
TryLoadBinary(DkmWorkList, DkmCompletionRoutine<DkmTryLoadBinaryAsyncResult>)

尝试使用更新的符号路径加载以前无法加载的二进制文件。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

(继承自 DkmModuleInstance)
TryLoadDecompiledSymbols()

尝试为模块加载缓存的反编译符号。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) 中引入的。

TryLoadDecompiledSymbols(DkmWorkList, DkmCompletionRoutine<DkmTryLoadDecompiledSymbolsAsyncResult>)

尝试为模块加载缓存的反编译符号。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) 中引入的。

TryLoadSymbols()

调用 以启动 DkmModuleInstances 的符号加载,这些符号在模块加载时找不到。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

(继承自 DkmModuleInstance)
TryLoadSymbols(DkmSymbolLoadFlags)

调用 以启动 DkmModuleInstances 的符号加载,这些符号在模块加载时找不到。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4) 中引入的。

(继承自 DkmModuleInstance)
TryLoadSymbols(DkmWorkList, DkmCompletionRoutine<DkmTryLoadSymbolsAsyncResult>)

调用 以启动 DkmModuleInstances 的符号加载,这些符号在模块加载时找不到。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

(继承自 DkmModuleInstance)
TryLoadSymbols(DkmWorkList, DkmSymbolLoadFlags, DkmCompletionRoutine<DkmTryLoadSymbolsAsyncResult>)

调用 以启动 DkmModuleInstances 的符号加载,这些符号在模块加载时找不到。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4) 中引入的。

(继承自 DkmModuleInstance)
TryLoadSymbolsCallback()

调用 以启动 DkmModuleInstances 的符号加载,这些符号在模块加载时找不到。

位置约束:可以从客户端或服务器调用。 此的服务器实现是一个缓存,以防止不必要的网络调用。 客户端直接转到“real”实现,这还可确保重新尝试提前返回。

此 API 是在 Visual Studio 17 RTM (DkmApiVersion.VS17RTM) 中引入的。

(继承自 DkmModuleInstance)
TryLoadSymbolsCallback(DkmWorkList, DkmCompletionRoutine<DkmTryLoadSymbolsCallbackAsyncResult>)

调用 以启动 DkmModuleInstances 的符号加载,这些符号在模块加载时找不到。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:可以从客户端或服务器调用。 此的服务器实现是一个缓存,以防止不必要的网络调用。 客户端直接转到“real”实现,这还可确保重新尝试提前返回。

此 API 是在 Visual Studio 17 RTM (DkmApiVersion.VS17RTM) 中引入的。

(继承自 DkmModuleInstance)
TryLoadSymbolsCallback177(DkmSymbolLoadFlags)

调用 以启动加载在模块加载时找不到其符号的 DkmModuleInstances 的本地现有符号。

位置约束:可以从客户端或服务器调用。 此的服务器实现是一个缓存,以防止不必要的网络调用。 客户端直接转到“real”实现,这还可确保重新尝试提前返回。

此 API 是在 Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7) 中引入的。

(继承自 DkmModuleInstance)
TryLoadSymbolsCallback177(DkmWorkList, DkmSymbolLoadFlags, DkmCompletionRoutine<DkmTryLoadSymbolsCallback177AsyncResult>)

调用 以启动加载在模块加载时找不到其符号的 DkmModuleInstances 的本地现有符号。

此方法会将新工作项追加到指定的工作列表,并在追加工作项后返回 。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

位置约束:可以从客户端或服务器调用。 此的服务器实现是一个缓存,以防止不必要的网络调用。 客户端直接转到“real”实现,这还可确保重新尝试提前返回。

此 API 是在 Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7) 中引入的。

(继承自 DkmModuleInstance)
TryResolveToken(DkmStackWalkFrame, Int32, DkmClrType, Int32)

尝试从此模块的范围内解析到定义模块的令牌。

位置约束:必须从监视组件 (组件级别 < 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) 中引入的。

Unload()

将 Unload 对象标记为已卸载,并通知实现事件接收器接口的组件。 一旦通知所有组件,控件将返回。

此方法只能由创建 对象的组件调用。

(继承自 DkmModuleInstance)

适用于