Share via


DkmPendingBreakpoint 类

定义

绑定到用户级构造的高级断点对象 (例如:源文件、函数名称) 它们可能映射到 DkmBoundBreakpoint) (零个或多个代码级构造,并且可能会随时间推移进行跟踪。

派生类:DkmPendingAddressBreakpoint、DkmPendingAddressNameBreakpoint、DkmPendingDataBreakpoint、DkmPendingFileLineBreakpoint、DkmPendingFunctionBreakpoint

public ref class DkmPendingBreakpoint abstract : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("c9e1ffa4-f943-14bc-5566-00a802dfc66f")]
public abstract class DkmPendingBreakpoint : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("c9e1ffa4-f943-14bc-5566-00a802dfc66f")>]
type DkmPendingBreakpoint = class
    inherit DkmDataContainer
    interface IDisposable
Public MustInherit Class DkmPendingBreakpoint
Inherits DkmDataContainer
Implements IDisposable
继承
DkmPendingBreakpoint
继承
DkmPendingBreakpoint
派生
属性
实现

属性

CompilerId

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

IsBarrier

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

IsUnloaded

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

(继承自 DkmDataContainer)
Process

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

SourceId

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

TagValue

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

Thread

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

UniqueId

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

方法

Close()

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

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

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

Disable(DkmWorkList, DkmCompletionRoutine<DkmDisablePendingBreakpointAsyncResult>)

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

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

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

Enable(DkmWorkList, DkmCompletionRoutine<DkmEnablePendingBreakpointAsyncResult>)

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

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

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

Enroll(DkmWorkList, DkmCompletionRoutine<DkmEnrollPendingBreakpointAsyncResult>)

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

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

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

GetBoundBreakpoints()

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

GetDataItem<T>()

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

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

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

OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, Byte, String)

断点管理器发送的关于绑定断点状态的通知。

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

OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, String)

断点管理器发送的关于绑定断点状态的通知。

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

OnBreakpointMessage(DkmBreakpointMessageLevel, String)

断点管理器发送的关于绑定断点状态的通知。

OnBreakpointUnbound(DkmBoundBreakpoint[], DkmBreakpointUnboundReason)

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

OnHitWithError(DkmThread, Boolean, DkmBreakpointMessageLevel, String)

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

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

RemoveDataItem<T>()

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

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

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

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

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

SetDataItem<T>(DkmDataCreationDisposition, T)

将新项放在数据容器中。

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

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

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

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

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

显式接口实现

IDisposable.Dispose()

绑定到用户级构造的高级断点对象 (例如:源文件、函数名称) 它们可能映射到 DkmBoundBreakpoint) (零个或多个代码级构造,并且可能会随时间推移进行跟踪。

派生类:DkmPendingAddressBreakpoint、DkmPendingAddressNameBreakpoint、DkmPendingDataBreakpoint、DkmPendingFileLineBreakpoint、DkmPendingFunctionBreakpoint

适用于