DkmRuntimeHardwareDataBreakpoint 类

定义

低级别数据断点,使用 CPU 的硬件断点寄存器设置。

public ref class DkmRuntimeHardwareDataBreakpoint : Microsoft::VisualStudio::Debugger::Breakpoints::DkmRuntimeBreakpoint
[System.Runtime.InteropServices.Guid("3346103d-7c30-4ee9-c3dd-e8e7e9f66a5e")]
public class DkmRuntimeHardwareDataBreakpoint : Microsoft.VisualStudio.Debugger.Breakpoints.DkmRuntimeBreakpoint
[<System.Runtime.InteropServices.Guid("3346103d-7c30-4ee9-c3dd-e8e7e9f66a5e")>]
type DkmRuntimeHardwareDataBreakpoint = class
    inherit DkmRuntimeBreakpoint
Public Class DkmRuntimeHardwareDataBreakpoint
Inherits DkmRuntimeBreakpoint
继承
DkmRuntimeHardwareDataBreakpoint
属性

属性

Access

屏蔽应激发数据断点的原因。 例如,如果设置了 "Write",则在写入内存位置时将激发断点。

Address

要在其上停止的地址。 必须适当调整此地址以匹配大小参数 (示例:如果 Size 为4,则 Address 必须是 4) 的倍数。

IsUnloaded

如果为此对象引发了 "已卸载" 事件,则返回 true (例如: DkmThread:: Unload 称为) 或对象已关闭。 请注意,在将此状态视为不同步时,必须使用 "小心",返回的状态在读取后可能不再准确。

(继承自 DkmDataContainer)
Process

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

(继承自 DkmRuntimeBreakpoint)
RuntimeInstance

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

(继承自 DkmRuntimeBreakpoint)
Size

指定监视访问的位置大小(以字节为单位)。 在基于 x86 的处理器上,此参数可以是1、2或4。 但是,如果 DkmDataAccessStopMask.Exe很漂亮,则大小必须为1。 在基于 x64 的处理器上,此参数可以是1、2、4或8。 但是,如果 DkmDataAccessStopMask.Exe很漂亮,则大小必须为1。 在基于 Itanium 的处理器上,此参数可以是2的任何幂,从1到0x80000000。

SourceId

标识对象的源。 当多个组件可能创建类的实例时,SourceIds 用于在方案中启用筛选。 例如,源 id 可用于确定断点是否来自 AD7 AL (ex: user 断点或其他) SDM 级别可见的断点,而不是可能由另一个组件创建的断点 (例如,用于单步执行) 的内部断点。

(继承自 DkmRuntimeBreakpoint)
TagValue

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

(继承自 DkmRuntimeBreakpoint)
Thread

可有可无应在其上激发此断点的线程。 如果为 null,则将在所有线程上触发断点。

(继承自 DkmRuntimeBreakpoint)
UniqueId

唯一标识此挂起断点对象的 Guid。

(继承自 DkmRuntimeBreakpoint)

方法

ClearConditions()

清除与指定 DkmRuntimeBreakpoint 关联的任何编译/计算条件。 关闭 DkmRuntimeBreakpoint 时,将隐式调用此方法。

(继承自 DkmRuntimeBreakpoint)
ClearConditions(DkmWorkList, DkmCompletionRoutine<DkmClearRuntimeBreakpointConditionsAsyncResult>)

清除与指定 DkmRuntimeBreakpoint 关联的任何编译/计算条件。 关闭 DkmRuntimeBreakpoint 时,将隐式调用此方法。

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

(继承自 DkmRuntimeBreakpoint)
ClearHitCountCondition(DkmBreakpointHitCountCondition, Int32)

清除对断点的命中次数条件。

(继承自 DkmRuntimeBreakpoint)
ClearHitCountCondition(DkmWorkList, DkmBreakpointHitCountCondition, DkmCompletionRoutine<DkmClearRuntimeBreakpointHitCountConditionAsyncResult>)

清除对断点的命中次数条件。

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

(继承自 DkmRuntimeBreakpoint)
Close()

关闭断点对象实例。 这会在所有组件中释放与此对象关联的所有资源。 如果该断点当前处于启用状态,则它将被隐式禁用。

关闭关联的 DkmRuntimeInstance 对象时,DkmRuntimeBreakpoint 对象会自动关闭。

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

(继承自 DkmRuntimeBreakpoint)
Create(DkmRuntimeInstance, Guid, DkmThread, UInt64, DkmDataAccessStopMask, Int32, DkmDataItem)

创建新的 DkmRuntimeHardwareDataBreakpoint 对象。 创建后,断点处于禁用状态,必须显式启用。 调用方负责在完成后关闭创建的对象。

Disable()

禁用断点。 禁用断点通常是通过修改目标进程的状态来实现的,因此不会再激发断点。 例如,从指令流中删除之前插入的 "int3"。 如果已禁用该断点,则此操作不起作用。 除此方法外,在关闭断点时,将隐式禁用该断点。

如果在同一指令上设置了多个断点,禁用一个断点不会影响在此指令上设置的其他断点。

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

(继承自 DkmRuntimeBreakpoint)
Disable(DkmWorkList, DkmCompletionRoutine<DkmDisableRuntimeBreakpointAsyncResult>)

禁用断点。 禁用断点通常是通过修改目标进程的状态来实现的,因此不会再激发断点。 例如,从指令流中删除之前插入的 "int3"。 如果已禁用该断点,则此操作不起作用。 除此方法外,在关闭断点时,将隐式禁用该断点。

如果在同一指令上设置了多个断点,禁用一个断点不会影响在此指令上设置的其他断点。

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

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

(继承自 DkmRuntimeBreakpoint)
Enable()

启用断点。 断点最初会开始禁用,因此必须先调用此方法,然后才能设置断点。 启用断点通常是通过修改目标进程的状态在调试监视器中实现的。 例如,将 "int3" 指令插入到代码流中。 如果已启用断点,则此操作不起作用。

启用断点后,只要满足 (ex:目标指令) ,调试监视器就会引发此 DkmRuntimeBreakpoint 对象的 RuntimeBreakpoint 事件。 可以在同一指令中设置多个 DkmRuntimeBreakpoints。 在这种情况下,调试监视器将为每个断点对象引发不同的 RuntimeBreakpoint 事件。 同样,如果一个步骤完成并且一个断点在同一指令上完成,则调试监视器将引发两个事件。

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

(继承自 DkmRuntimeBreakpoint)
Enable(DkmWorkList, DkmCompletionRoutine<DkmEnableRuntimeBreakpointAsyncResult>)

启用断点。 断点最初会开始禁用,因此必须先调用此方法,然后才能设置断点。 启用断点通常是通过修改目标进程的状态在调试监视器中实现的。 例如,将 "int3" 指令插入到代码流中。 如果已启用断点,则此操作不起作用。

启用断点后,只要满足 (ex:目标指令) ,调试监视器就会引发此 DkmRuntimeBreakpoint 对象的 RuntimeBreakpoint 事件。 可以在同一指令中设置多个 DkmRuntimeBreakpoints。 在这种情况下,调试监视器将为每个断点对象引发不同的 RuntimeBreakpoint 事件。 同样,如果一个步骤完成并且一个断点在同一指令上完成,则调试监视器将引发两个事件。

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

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

(继承自 DkmRuntimeBreakpoint)
EvaluateConditionAndSelectThread(DkmThread)

基本调试监视器要求在所有停止的线程上计算断点条件处理器,并选择条件为 true 的线程。

位置约束:必须从监视器组件 (组件级别 100000) 中调用 API < 。

此 API 是在 Visual Studio 11 Update 1 (VS11FeaturePack1) 中引入的。

(继承自 DkmRuntimeBreakpoint)
EvaluateConditionAndSelectThread(DkmWorkList, DkmThread, DkmCompletionRoutine<DkmEvaluateConditionAndSelectThreadAsyncResult>)

基本调试监视器要求在所有停止的线程上计算断点条件处理器,并选择条件为 true 的线程。

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

位置约束:必须从监视器组件 (组件级别 100000) 中调用 API < 。

此 API 是在 Visual Studio 11 Update 1 (VS11FeaturePack1) 中引入的。

(继承自 DkmRuntimeBreakpoint)
GetCompiledCondition(DkmInstructionAddress, DkmBreakpointConditionOperator)

回调从断点条件处理器调用断点管理器 (或其他组件(当需要重新编译新指令地址的断点条件时) 调用 SetCompiledConditionPending)。

位置约束:必须从监视器组件 (组件级别 100000) 中调用 API < 。

(继承自 DkmRuntimeBreakpoint)
GetDataItem<T>()

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

(继承自 DkmDataContainer)
GetHitCountConditionStatus(DkmWorkList, DkmCompletionRoutine<DkmGetRuntimeBreakpointHitCountConditionAsyncResult>)

获取具有命中次数条件的 DkmRuntimeBreakpoint 的当前命中计数值。 如果 DkmRuntimeBreakpoint 当前不具有命中次数条件,此函数将失败。

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

(继承自 DkmRuntimeBreakpoint)
GetHitCountConditionStatus(Int32)

获取具有命中次数条件的 DkmRuntimeBreakpoint 的当前命中计数值。 如果 DkmRuntimeBreakpoint 当前不具有命中次数条件,此函数将失败。

(继承自 DkmRuntimeBreakpoint)
OnBreakpointConditionFailed(DkmILFailureReason)

当断点条件遇到运行时错误时,从断点条件处理器调用回断点管理器。

位置约束:必须从监视器组件 (组件级别 100000) 中调用 API < 。

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

(继承自 DkmRuntimeBreakpoint)
OnBreakpointConditionFailed(DkmThread, String, DkmILFailureReason)

引发 RuntimeBreakpointConditionFailed 事件。 实现事件接收器接口的组件将接收事件通知。 此方法将排队等待事件,控件将立即返回到调用方。

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

(继承自 DkmRuntimeBreakpoint)
OnBreakpointConditionFailed(String)

当断点条件遇到运行时错误时,从断点条件处理器调用回断点管理器。

位置约束:必须从监视器组件 (组件级别 100000) 中调用 API < 。

(继承自 DkmRuntimeBreakpoint)
OnDataBreakpointHit(DkmThread, Boolean, String)

引发 RuntimeDataBreakpointHit 事件。 实现事件接收器接口的组件将接收事件通知。 此方法将排队等待事件,控件将立即返回到调用方。

此 API 是在 Visual Studio 16 RTM (VS16RTM) 中引入的。

(继承自 DkmRuntimeBreakpoint)
OnError(DkmBreakpointMessageLevel, String)

当断点无效并且需要通知 UI 时,将调用此方法。

位置约束:可以从任何组件调用此。

此 API 是在 Visual Studio 16 RTM (VS16RTM) 中引入的。

(继承自 DkmRuntimeBreakpoint)
OnHit(DkmThread, Boolean)

引发 RuntimeBreakpoint 事件。 实现事件接收器接口的组件将接收事件通知。 此方法将排队等待事件,控件将立即返回到调用方。

(继承自 DkmRuntimeBreakpoint)
OnHitWithError(DkmThread, Boolean, DkmBreakpointMessageLevel, String)

引发 RuntimeBreakpointHitWithError 事件。 实现事件接收器接口的组件将接收事件通知。 此方法将排队等待事件,控件将立即返回到调用方。

此 API 是在 Visual Studio 16 RTM (VS16RTM) 中引入的。

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

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

(继承自 DkmDataContainer)
RequestBreakpointEventOnModifiedThread(DkmThread)

断点条件处理器决定不中断给定线程上的另一个线程,因此,断点条件处理器指示基调试监视器在另一个线程上重新发送断点事件。

(继承自 DkmRuntimeBreakpoint)
RequestBreakpointEventOnModifiedThread(DkmWorkList, DkmThread, DkmCompletionRoutine<DkmRequestBreakpointEventOnModifiedThreadAsyncResult>)

断点条件处理器决定不中断给定线程上的另一个线程,因此,断点条件处理器指示基调试监视器在另一个线程上重新发送断点事件。

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

(继承自 DkmRuntimeBreakpoint)
SetCompiledConditionPending()

此方法类似于 SetCompiledCondition,但用于指令地址前面未知的情况,如数据断点。 在这些情况下,如果第一次命中断点时,将对断点客户端进行调用以获取此地址的新编译条件 (GetCompiledCondition) 。 这用于在 IDE 进程中计算的语言 (ex: c + +) 。

(继承自 DkmRuntimeBreakpoint)
SetCompiledConditionPending(DkmWorkList, DkmCompletionRoutine<DkmSetCompiledConditionPendingAsyncResult>)

此方法类似于 SetCompiledCondition,但用于指令地址前面未知的情况,如数据断点。 在这些情况下,如果第一次命中断点时,将对断点客户端进行调用以获取此地址的新编译条件 (GetCompiledCondition) 。 这用于在 IDE 进程中计算的语言 (ex: c + +) 。

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

(继承自 DkmRuntimeBreakpoint)
SetDataItem<T>(DkmDataCreationDisposition, T)

在数据容器中放置一个新项。

(继承自 DkmDataContainer)
SetEvaluationCondition(DkmBreakpointCondition, String)

设置在目标计算机上计算的断点条件。 这适用于 .NET 语言。

(继承自 DkmRuntimeBreakpoint)
SetEvaluationCondition(DkmWorkList, DkmBreakpointCondition, DkmCompletionRoutine<DkmSetEvaluationConditionAsyncResult>)

设置在目标计算机上计算的断点条件。 这适用于 .NET 语言。

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

(继承自 DkmRuntimeBreakpoint)
SetHitCountCondition(DkmBreakpointHitCountCondition, Int32)

初始化或更新断点上的命中次数条件/值。 如果同一断点同时具有语言级条件和命中次数条件,则首先应用语言级条件。 如果关闭 DkmRuntimeBreakpoint,则会隐式删除该条件。

(继承自 DkmRuntimeBreakpoint)
SetHitCountCondition(DkmWorkList, DkmBreakpointHitCountCondition, Int32, DkmCompletionRoutine<DkmSetRuntimeBreakpointHitCountConditionAsyncResult>)

初始化或更新断点上的命中次数条件/值。 如果同一断点同时具有语言级条件和命中次数条件,则首先应用语言级条件。 如果关闭 DkmRuntimeBreakpoint,则会隐式删除该条件。

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

(继承自 DkmRuntimeBreakpoint)
Test()

确定是否可以启用给定 DkmRuntimeBreakpoint。 这是从 "断点" 对话框中使用的,用于在关闭对话框之前验证断点。

(继承自 DkmRuntimeBreakpoint)
Test(DkmWorkList, DkmCompletionRoutine<DkmTestRuntimeBreakpointAsyncResult>)

确定是否可以启用给定 DkmRuntimeBreakpoint。 这是从 "断点" 对话框中使用的,用于在关闭对话框之前验证断点。

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

(继承自 DkmRuntimeBreakpoint)

显式接口实现

IDisposable.Dispose()

内容待定。

(继承自 DkmRuntimeBreakpoint)

适用于