DkmPendingBreakpoint 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
绑定到用户级构造的高级断点对象 (例如:源文件、函数名称) 它们可能映射到 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
- 继承
- 继承
- 派生
- 属性
- 实现
属性
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 |