使用断点

断点是放置在可执行程序中的临时标记,用于告诉调试器在给定点上停止执行程序。当遇到断点时,在执行该行之前执行会在该断点上暂挂,此时,可以查看线程的堆栈以及检查变量、寄存器和内存的内容。
关于此任务

当调试 AIX® 应用程序时,下列断点类型受支持:

在“断点”视图中通过以下操作来设置事件断点:单击管理编译语言事件断点按钮,然后在“管理事件断点”对话框中选择要调试器捕获的事件类型。这些断点包括所有标准 AIX 信号和大量相关事件(例如 C++ 异常)以及对库函数(例如 exit())的调用。对于 AIX 信号,可以选择在所有出现每个信号(已处理的信号)的情况下收到通知,也可以选择仅在尚未提供处理程序时出现信号(未处理的信号)的那些情况下收到通知。

可通过双击可执行行左边的标尺区或右键单击弹出菜单操作来在调试器编辑器中设置行断点,也可以在“断点”视图中通过向导来进行设置。可通过右键单击入口点并从弹出菜单中选择设置入口断点来在“模块”视图中设置入口断点,也可在“断点”视图中通过向导来进行设置。此外,可以在“调试”视图中右键单击调试目标(或它的其中一个线程或堆栈帧)并从弹出菜单中选择选项 > 在所有函数入口处停止来在所有入口点停止(此选项还可从“断点”视图弹出菜单中获取)。所有其他断点类型都是在“断点”视图中通过向导设置的。要访问用于设置断点的向导,请在“断点”视图中右键单击并从弹出菜单中选择添加断点。这将展开至允许您选择要设置的断点类型的菜单。当使用向导来设置断点时,可以指定可选断点参数并设置条件断点(请参阅相关主题)。

注:
  • 可通过在向导中输入变量名称来添加观察断点。变量的长度可以是 1、2、4 或 8 个字节。长度为 2、4 或 8 个字节的观察断点必须分别在 2-、4- 或 8- 字节边界上对齐。自动断点根据变量大小确定要监视的大小。AIX 硬件仅允许一个观察点(较早的 AIX 硬件可能根本不允许观察断点)。
  • 如果正在使用 AIX 调试引擎的版本 11 或更高版本,那么“入口断点”向导已改进。现在,该向导显示所有可调试入口点的列表。可以通过在文本字段中输入入口点名称来在该选择列表中进行准确查找。

除非使用“按调试目标进行过滤”操作或将“断点”视图链接至“调试”视图,否则所有断点(对于所有调试会话)的列表都显示在“断点”视图中。要滤出与当前调试会话不相关的断点,请单击“断点”视图的显示受所选目标支持的断点按钮。要将“断点”视图与“调试”视图链接在一起,请单击与“调试”视图链接按钮,当此按钮处于选中状态并且断点暂挂调试会话时,该断点将在“断点”视图中自动处于选中状态。

还可对断点进行分组以更方便地在“断点”视图中进行查看。断点可以按断点(断点的标准列表)、断点类型(例如,按行和入口断点分组)以及断点工作集(您自己定义的组)进行分组。要对断点进行分组,请选择“断点”视图向下箭头图标,然后选择要在“断点”视图中显示的组。当在此菜单中单击高级时,对话框会打开,允许您创建嵌套组。要创建工作集,请从“断点”视图向下箭头图标菜单中选择工作集

列表中的断点条目为您提供断点属性(在方括号中)的摘要。借助弹出菜单选项,可以添加断点、除去断点和启用或禁用断点。还可通过弹出菜单选项来编辑断点属性。借助“断点”视图中的按钮,可以除去断点。

当选择编辑断点时,创建该断点的向导会打开(如果未使用向导来创建该断点,那么对应于该断点类型的向导会打开)。当在向导中时,可以单击下一步 >< 后退来查看或编辑向导中的断点设置。如果完成此操作,请单击完成以更改断点,或单击取消以退出向导但不进行任何更改。

可以借助“断点”视图或编辑器中的弹出菜单以及通过“断点”视图中的复选框来启用和禁用断点。有关启用和禁用断点的信息,请参阅相关主题。

在“断点”视图中,已设置断点的左边有两个指示器()。最左端是用于指示断点是否已启用的复选框。如果已启用断点,那么该复选框包含复选标记(下图中的指针 A.)。如果已禁用断点,那么该复选框不包含复选标记(下图中的指针 B.):

在左近端,带有复选标记覆盖段的指示器指示调试引擎已成功安装的断点(如果断点已启用,那么此指示器已填充;如果断点已禁用,那么此指示器未填充)。在编辑器中,行断点由带有复选标记覆盖段的指示器指示,从而指示调试引擎已成功安装的断点(如果断点已启用,那么此指示器已填充;如果断点已禁用,那么此指示器未填充)。

在断点将暂挂执行之前,必须安装这些断点。可添加对于当前调试会话无效的断点。在此断点包含在调试会话(它包括将对该断点进行识别的调试引擎)中之前,将不安装此断点。

在编辑器中,行和入口断点指示器会显示在编辑器左边的标记栏中。针对行、入口、地址、观察和装入断点的指示器会显示在“断点”视图中。

当在“断点”视图中时,如果执行下列其中一个操作,那么源代码编辑器将打开至断点的位置:

结果

反馈