设置断点

使用 AddBreakpoint 方法创建断点。 此方法创建表示断 点的 IDebugBreakpoint 对象。 它还 (软件 断点 或处理器断点) 设置断点类型。 创建断点后,无法更改其类型。

使用 RemoveBreakpoint 方法删除断点。 这还会删除 IDebugBreakpoint 对象;此对象不能再次使用。

注意 尽管 IDebugBreakpoint 实现 IUnknown 接口,但 IUnknown::AddRefIUnknown::Release 方法不用于控制断点的生存期。 这些方法不会影响断点的生存期。 相反,在调用 RemoveBreakpoint 方法后,将删除 IDebugBreakpoint 对象。

创建断点时,会为其提供唯一的 断点 ID。 此标识符不会更改。 但是,删除断点后,其 ID 可用于另一个断点。 有关如何接收删除断点的通知的详细信息,请参阅 监视事件

创建断点时,它最初被禁用;这意味着它不会导致目标停止执行。 可以使用 AddFlags 方法添加DEBUG_BREAKPOINT_ENABLED标志来启用此断点。

首次创建断点时,该断点具有与之关联的内存位置0x00000000。 可以通过将 SetOffset 与地址一起使用,或者将 SetOffsetExpression 与符号表达式一起使用来更改位置。 在使用断点之前,应从其初始值更改断点的位置。