调试器引擎可以在目标中创建和监视断点。
引擎可以插入到目标中的两种类型的断点:软件断点和处理器断点。
通过修改断点位置的处理器指令,将软件断点插入目标代码中。 调试器引擎会跟踪这些断点,它们对读取和写入该位置内存的客户端是不可见的。 当目标执行修改后的指令时,将触发软件断点。
处理器断点 由调试器引擎插入目标处理器中。 处理器断点可以通过不同的作触发,例如,在位置(如软件断点)执行指令,或在断点位置读取或写入内存。 对处理器断点的支持依赖于目标计算机中的处理器。
断点的地址可由显式地址、计算结果为地址的表达式或将来可能计算为地址的表达式来指定。 在最后一种情况下,每次在目标中加载或卸载模块时,引擎将尝试重新评估表达式并插入断点(如果它可以确定地址);这样就可以在加载模块之前在模块中设置断点。
许多参数可以与断点相关联,以控制其行为:
断点可以与目标中的特定线程相关联,并且只能由该线程触发。
断点可以具有与之关联的调试器命令;触发断点时,将自动执行这些命令。
可以将断点标记为非活动状态,直到目标经过指定次数。
在首次触发断点时,可以自动删除断点。
其他信息
有关使用断点的详细信息,请参阅 “使用断点”。