DkmCustomInstructionAddress 类

定义

DkmCustomInstructionAddress 用于自定义运行时环境中的地址, (不是本机或基于 CLR 的) 。 例如,可以在自定义解释器或实时编译器中使用。

public ref class DkmCustomInstructionAddress : Microsoft::VisualStudio::Debugger::DkmInstructionAddress
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmCustomInstructionAddress : Microsoft::VisualStudio::Debugger::DkmInstructionAddress
[Windows::Foundation::Metadata::WebHostHidden]
class DkmCustomInstructionAddress : Microsoft::VisualStudio::Debugger::DkmInstructionAddress
[System.Runtime.InteropServices.Guid("9205f0c6-3471-83dc-bd08-54c4c7d5dbc8")]
public class DkmCustomInstructionAddress : Microsoft.VisualStudio.Debugger.DkmInstructionAddress
[<System.Runtime.InteropServices.Guid("9205f0c6-3471-83dc-bd08-54c4c7d5dbc8")>]
type DkmCustomInstructionAddress = class
    inherit DkmInstructionAddress
Public Class DkmCustomInstructionAddress
Inherits DkmInstructionAddress
继承
DkmCustomInstructionAddress
属性

属性

AdditionalData

可有可无与某个地址相关联的其他特定于运行时的数据。 比较地址时将不使用此数据。

CPUInstructionPart

可有可无CPUInstructionPart 提供 CPU 将执行的地址。 这始终为本机说明提供。 它可为 CLR 或自定义地址提供,具体取决于地址对象的创建方式。

(继承自 DkmInstructionAddress)
EntityId

可有可无这是特定于运行时的数据结构,自定义运行时可使用该结构来存储此指令的位置。 除了 "偏移量",此字段还用于比较同一个模块中的两个指令。

ModuleInstance

包含 InstructionPointer 的模块。

Offset

"偏移量" 字段与 "EntityId" 一起用于唯一标识指令。 这可以保存指针值 (如指向指令的指针) 或从函数/模块的开头开始的偏移量。

Process

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

(继承自 DkmInstructionAddress)
RuntimeInstance

DkmRuntimeInstance 类表示加载到 DkmProcess 中的执行环境,其中包含要调试的代码。

(继承自 DkmInstructionAddress)
TagValue

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

(继承自 DkmInstructionAddress)

方法

CompareTo(DkmInstructionAddress)

比较两个指令地址并返回一个值,该值指示一个指令地址是小于、等于还是大于另一个。 地址必须来自同一个模块。

(继承自 DkmInstructionAddress)
Create(DkmRuntimeInstance, DkmCustomModuleInstance, ReadOnlyCollection<Byte>, UInt64, ReadOnlyCollection<Byte>, DkmInstructionAddress+CPUInstruction)

创建新的 DkmCustomInstructionAddress 对象实例。

GetCurrentCPUAddress()

将 DkmInstructionAddress 解析为 CPU InstructionAddress。 这是 ResolveCPUInstructionAddress 的反向映射。 此 API 目前仅受 CLR DkmRuntimeInstance 对象支持。

位置约束:通常应在客户端上调用此 API,但它可以在服务器上调用以将 CLR 地址转换 (但不能将其转换为本机编译) 。

(继承自 DkmInstructionAddress)
GetCurrentCPUAddress(DkmWorkList, DkmCompletionRoutine<DkmGetCurrentCPUAddressAsyncResult>)

将 DkmInstructionAddress 解析为 CPU InstructionAddress。 这是 ResolveCPUInstructionAddress 的反向映射。 此 API 目前仅受 CLR DkmRuntimeInstance 对象支持。

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

位置约束:通常应在客户端上调用此 API,但它可以在服务器上调用以将 CLR 地址转换 (但不能将其转换为本机编译) 。

(继承自 DkmInstructionAddress)
GetSymbol()

将 DkmInstructionAddress 转换为 DkmInstructionSymbol。 如果 DkmInstructionAddress 不在 DkmModule 中,则 GetSymbol 将 S_FALSE 本机代码) 中返回 null (。

(继承自 DkmInstructionAddress)
IsInSameFunction(DkmInstructionAddress)

比较两个指令地址,并确定它们是否在同一函数中。

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

(继承自 DkmInstructionAddress)
IsUserCode(DkmWorkList, DkmCompletionRoutine<DkmIsUserCodeAsyncResult>)

确定给定指令地址是否为用户代码。

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

位置约束:注意:对于 Visual Studio 2017 Update 8,API 的 CallDirection 从 "Normal" 变为 "双向",现在可以从任何组件进行调用。

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

(继承自 DkmInstructionAddress)

适用于