断点

调试器引擎可以在目标中创建和监视断点。

引擎可以在目标中插入到两种类型的断点:软件断点和处理器断点。

  • 通过修改断点位置的处理器指令,将软件断点插入目标代码中。 调试器引擎跟踪此类断点;它们对在该位置读取和写入的内存的客户端不可见。 当目标执行修改后的指令时,将触发软件断点。

  • 处理器断点由调试器引擎插入目标处理器中。 处理器断点可以通过不同的操作触发,例如,在位置(如软件断点)执行指令,或者在断点位置读取或写入内存。 对处理器断点的支持依赖于目标计算机中的处理器。

断点的地址可由显式地址、计算结果为地址的表达式或将来可能计算为地址的表达式来指定。 在最后一种情况下,每次在目标中加载或卸载模块时,引擎将尝试重新评估表达式并插入断点(如果它可以确定地址);这样就可以在加载模块之前在模块中设置断点。

许多参数可以与断点相关联,以控制其行为:

  • 断点可以与目标中的特定线程相关联,并且只能由该线程触发。

  • 断点可以具有与之关联的调试器命令;触发断点时,这些命令将自动执行。

  • 在目标传递指定次数之前,可以将断点标记为非活动状态。

  • 在首次触发断点时,断点可以被自动删除。

其他信息

有关使用断点的详细信息,请参阅使用断点