条件断点

可选断点参数用于控制断点的行为。

当设置断点时,可以通过在任何断点向导的可选参数页面中(通常通过编辑现有断点)设置下列参数来使该断点成为条件断点(无论它是否停止):

可选断点参数 描述 受支持的断点类型
Thread

断点可以特定于线程。在向导中,可以指定断点是适用于所有线程(缺省值)还是仅适用于一个 (n=one) 特定线程。

此参数受所有断点类型支持。
Frequency 使用 Frequency 控件来告知调试器何时在断点上停止以及何时跳过断点。调试器对遇到每个断点的次数进行跟踪。此部分中的字段告知调试器下列事项:在哪次遇到断点时调试器将第一次停止、调试器将停止的频率以及在哪次遇到断点时调试器将不再停止。

下列参数用于设置断点频率:

  • From:输入要调试器停止时首先遇到的断点的数目。例如,如果要调试器跳过前五次遇到的断点,请输入“6”。
  • To:输入要调试器停止时最后遇到的断点的数目。例如,如果要让它在第 20 次遇到断点之后开始忽略断点,请输入“20”。要让调试器在断点上始终停止,请输入“Infinity”。
  • Every:输入要调试器停止在此断点上时使用的频率。例如,如果要调试器仅在遇到某处断点的位置(每四个断点为一处)上停止,请输入“4”。
此参数受所有断点类型支持。
Expression 可以将表达式输入到此字段中。仅当在此字段中指定的条件测试为 true(任何非零值都被认为是 true)时,程序执行才在断点上停止。

例如,如果要调试 C++ 程序,那么可输入以下表达式:

(i==1) || (j==k) && (k!=5)

条件表达式是任何求值为数字的有效表达式(以断点位置的语言表示),并且没有副作用或者不涉及调用函数。对于 C 和 C++,这意味着并非允许使用所有赋值运算符以及增量和减量运算符(++--)。

注意: 即使应用程序似乎未在其条件不符合的断点上停止,当调试器对该条件进行评估时,它也会临时暂挂应用程序。对大多数场合来说,此短时间暂停没有意义。但是,在多线程应用程序中,这可使操作系统更改在分派线程时使用的顺序。
注:
  • 当调试 COBOL for AIX 程序时,对于下列运算符,仅关系条件受支持:

    ><=>=<=NOT >NOT <NOT =

  • 左操作数必须为变量,右操作数必须为常量。例如,var1 > 5 有效,而 5 < var1var1 > var2 无效。
  • 十六进制常数仅允许与 POINTER 变量一起使用。
  • 非数字和外部浮点变量必须与非数字文字进行比较。
  • 分区十进制变量必须与数字常数进行比较。
  • 不允许复杂条件和组的比较。
  • 比较基于语言环境,独立于任何 COLLSEQ 编译选项或程序内指定的整理顺序。
行、条目和地址。

反馈