DkmPendingDataBreakpoint 类

定义

绑定到数据表达式而不是代码表达式的挂起断点。 将指定元素写入时,将触发数据断点。

public ref class DkmPendingDataBreakpoint : Microsoft::VisualStudio::Debugger::Breakpoints::DkmPendingBreakpoint
[System.Runtime.InteropServices.Guid("afd7a281-dbf3-946b-9464-8ca12287616b")]
public class DkmPendingDataBreakpoint : Microsoft.VisualStudio.Debugger.Breakpoints.DkmPendingBreakpoint
[<System.Runtime.InteropServices.Guid("afd7a281-dbf3-946b-9464-8ca12287616b")>]
type DkmPendingDataBreakpoint = class
    inherit DkmPendingBreakpoint
Public Class DkmPendingDataBreakpoint
Inherits DkmPendingBreakpoint
继承
继承
DkmPendingDataBreakpoint
属性

属性

CompilerId

标识 (源语言(例如 C#) )和编译器供应商 (例如:应绑定断点的 Microsoft) 。 “LanguageId”可能保留为 Guid.Empty,以指示断点应绑定到所有语言。 “VendorId”几乎始终保留为 Guid.Empty,这表示仅知道语言 (编译器) 。

(继承自 DkmPendingBreakpoint)
DataElementLocation

指示要watch的数据值的位置。

IsBarrier

指示此断点是否是应在硬件上设置的屏障,这适用于 GPU 调试。

(继承自 DkmPendingBreakpoint)
IsUnloaded

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

(继承自 DkmDataContainer)
Process

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

(继承自 DkmPendingBreakpoint)
Size

指定要监视访问的位置的大小(以字节为单位)。 有效大小可能取决于目标处理器 (x86、x64 等) 和正在调试的代码类型。 例如,本机代码利用 CPU 的断点寄存器,基于 x86 的处理器支持大小为 1、2 和 4。

SourceId

标识对象的源。 SourceId 用于在多个组件可能创建类实例的情况下启用筛选。 例如,源 ID 可用于确定断点是来自 AD7 AL (例如用户断点,还是来自 SDM 级别) 可见的其他断点,而不是可能由其他组件创建的断点 (例如用于单步) 的内部断点。

(继承自 DkmPendingBreakpoint)
TagValue

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

(继承自 DkmPendingBreakpoint)
Thread

[可选]应触发此断点的线程。 如果为 null,则对所有线程触发断点。

(继承自 DkmPendingBreakpoint)
UniqueId

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

(继承自 DkmPendingBreakpoint)

方法

Close()

关闭 DkmPendingBreakpoint 对象实例。 这将跨所有组件释放与此对象关联的任何资源。 这包括跨计算机或托管/本机封送边界的资源。

DkmPendingBreakpoint 对象在关闭关联的 DkmProcess 对象时自动关闭。

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

(继承自 DkmPendingBreakpoint)
Create(DkmProcess, Guid, DkmCompilerId, DkmThread, Boolean, String, Int32, DkmDataItem)

创建新的挂起断点对象。 创建后,仍会禁用返回的对象,并且不会由断点管理器跟踪。 若要完成初始化,调用方应在断点和“启用”或“注册”断点上设置其他属性。 调用方负责在创建的对象完成后关闭这些对象。

Disable(DkmWorkList, DkmCompletionRoutine<DkmDisablePendingBreakpointAsyncResult>)

禁用挂起的断点对象,使其不再触发。 如果挂起的断点已绑定,则将隐式禁用任何绑定断点。

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

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

(继承自 DkmPendingBreakpoint)
Enable(DkmWorkList, DkmCompletionRoutine<DkmEnablePendingBreakpointAsyncResult>)

设置挂起断点的状态,以便将来绑定的断点实例将被命中。 如果挂起的断点尚未注册,则此方法还将注册断点。 注册挂起的断点包括尝试针对当前加载的任何模块解析断点,并将断点添加到断点管理器将在任何模块加载上绑定的断点列表。 如果已注册挂起的断点,则不会自动启用现有的绑定断点。 绑定断点必须单独启用。

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

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

(继承自 DkmPendingBreakpoint)
Enroll(DkmWorkList, DkmCompletionRoutine<DkmEnrollPendingBreakpointAsyncResult>)

此方法将注册挂起的断点,而不启用它。 结果是断点管理器将尝试解析的断点,但不会触发。 注册挂起的断点包括尝试针对当前加载的任何模块解析断点,并将断点添加到断点管理器将在任何模块加载上绑定的断点列表。

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

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

(继承自 DkmPendingBreakpoint)
GetBoundBreakpoints()

GetBoundBreakpoints 枚举此 DkmPendingBreakpoint 对象的 DkmBoundBreakpoint 元素。

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

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

(继承自 DkmDataContainer)
OnBreakpointBound(DkmBoundBreakpoint[])

断点管理器在绑定断点时发出通知。 对于用户设置断点,此通知将发送到 AD7 AL,AD7 AL 将触发 IDebugBreakpointBoundEvent2 到 Visual Studio 调试器 UI。

(继承自 DkmPendingBreakpoint)
OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, Byte, String)

断点管理器发出有关绑定断点状态的通知。

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

(继承自 DkmPendingBreakpoint)
OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, String)

断点管理器发出有关绑定断点状态的通知。

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

(继承自 DkmPendingBreakpoint)
OnBreakpointMessage(DkmBreakpointMessageLevel, String)

断点管理器发出有关绑定断点状态的通知。

(继承自 DkmPendingBreakpoint)
OnBreakpointUnbound(DkmBoundBreakpoint[], DkmBreakpointUnboundReason)

断点管理器发出通知,指示给定的断点未绑定。

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

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

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

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

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

(继承自 DkmDataContainer)
SetCondition(DkmWorkList, DkmBreakpointCondition, DkmCompletionRoutine<DkmSetPendingBreakpointConditionAsyncResult>)

初始化、更新或清除此条件断点的所有绑定断点上的语言级别条件。 如果同一断点同时具有语言级别条件和命中计数条件,则首先应用语言级别条件。

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

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

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

将新项放在数据容器中。

(继承自 DkmDataContainer)
SetHitCountCondition(DkmWorkList, DkmBreakpointHitCountCondition, DkmCompletionRoutine<DkmSetPendingBreakpointHitCountConditionAsyncResult>)

初始化、更新或清除此挂起断点的所有绑定断点上的命中计数条件。 如果同一断点同时具有语言级别条件和命中计数条件,则首先应用语言级别条件。

请注意,命中计数条件单独作用于每个绑定断点,而不是在挂起的断点上聚合在一起。 例如,如果命中计数配置为在命中 #2 时停止,并且断点到两个单独的位置(每个位置都命中断点一次),则 UI 仍不会进入中断模式,因为两个绑定断点都没有命中两次。

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

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

(继承自 DkmPendingBreakpoint)

显式接口实现

IDisposable.Dispose()

绑定到数据表达式而不是代码表达式的挂起断点。 将指定元素写入时,将触发数据断点。

(继承自 DkmPendingBreakpoint)

适用于