DkmCustomInstructionAddress 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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
- 继承
- 属性
属性
| 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) |