stop 命令用于设置源代码级断点。
stop 命令的通用语法如下:
stop event-specification [modifier]
发生指定事件时,停止进程。
本节介绍在本地模式下有效的其中一些较重要的语法。有关其他事件的信息,请参见设置事件规范。
立刻停止执行。仅在 when 命令的主体中有效。
立刻停止执行,但不更新 Oracle Developer Studio IDE 调试器窗口。
在访问了通过 address-expression 指定的内存时停止执行。另请参见访问地址时停止执行。
在 line-number 处停止执行。请参见在源代码行设置断点。
调用 function 时停止执行。请参见在函数中设置断点。
仅限于 C++:对类、结构、联合或模板类的所有成员函数设置断点。-norecurse 是缺省值。如果指定 -recurse,则包括基类。另请参见在类的所有成员函数中设置断点。
仅限于 C++:对所有成员函数 name. 设置断点。请参见在不同类的成员函数中设置断点。
仅限于 C++:在从对象 object-expression 调用类及其所有基类的任何非静态方法的入口处设置断点。-recurse 是缺省值。如果指定 -norecurse,则不包括基类。请参见在对象中设置断点。
line-number 是源代码行的编号。
function 是函数名。
class-name 是 C++ 类、结构、联合或模板类的名称。
mode 指定内存访问模式。可由以下一个或所有字母组成:
已读取指定地址处的内存。
已写入内存。
已执行内存。
mode 也可以包含:
访问后停止进程(缺省值)。
访问前停止进程。
name 是 C++ 函数的名称。
object-expression 标识的是 C++ 对象。
variable 是变量名。
下列修饰符在本地模式中有效。
只有在 condition-expression 的求值结果为 true 时,才会发生指定的事件。
只有在 function 范围内发生指定事件时,执行才会停止。
从 0 开始,每次发生事件时,计数器的计数便会增加。达到 number 时,执行便停止,且计数器重置为 0。
从 0 开始,每次发生事件时,计数器的计数便会增加。执行没有停止。
创建发生事件时会删除的临时断点。
创建禁用状态的断点。
执行指令级变量。例如,step 变为指令级单步执行,而 at 使用文本地址而不是行号作为参数。
使相应事件在 debug 中保持持久性。有些事件(如断点)不适合保持持久性。delete all 不会删除持久性的处理程序。要删除持久性的处理程序,请使用 delete hid。
通过 status 命令隐藏事件。一些导入模块可能会选择使用它。可使用 status -h 查看它们。
只有在给定的 LWP 中发生指定的事件时,执行才会停止。
只有在给定的线程中发生指定的事件时,执行才会停止。
下列特定语法在 Java 模式中有效。
访问了 class-name.field-name 指定的内存时停止执行。
在 line-number 处停止执行。
在 filename 中的 line-number 处停止执行。
class-name 中的 field-name 值发生了更改时停止执行。
在装入任何类时停止执行。
装入 class-name 时停止执行。
在卸载任何类时停止执行。
卸载 class-name 时停止执行。
condition-expression 表示的条件的求值结果为 true 时停止执行。
输入了 class-name.method-name 且将要执行第一行时停止执行。如果未指定参数且重载方法,则会显示方法列表。
输入了 class-name.method-name 且将要执行第一行时停止执行。
对所有非成员方法 class-name.method-name 设置断点。
对所有非成员方法 class-name.method-name 设置断点。
抛出了 Java 异常时停止执行。
抛出了 type 类型的 Java 异常时停止执行。
其中:
class-name 是 Java 类。可使用下列任意值:
使用句点 (.) 作为限定符的软件包路径;例如,test1.extra.T1.Inner
前面带有英镑标记 (#) 并使用斜杠 (/) 和美元标记 ($) 作为限定符的全路径名。例如,#test1/extra/T1$Inner。如果使用 $ 限定符,请使用引号将 class-name 引起来。
condition-expression 可以是任何表达式,但其求值结果必须为整型。
field-name 是类中字段的名称。
filename 是文件名。
line-number 是源代码行的编号。
method-name 是 Java 方法的名称。
mode 指定内存访问模式。可由以下一个或所有字母组成:
已读取指定地址处的内存。
已写入内存。
mode 也可以包含:
访问前停止进程。
程序计数器将指向违例指令。
parameters 是方法的参数。
type 是 Java 异常的类型。-unhandled 或 -unexpected 是 type 的有效值。
下列修饰符在 Java 模式中有效:
只有在 condition-expression 的求值结果为 true 时,才会发生指定的事件。
从 0 开始,每次发生事件时,计数器的计数便会增加。达到 number 时,执行便停止,且计数器重置为 0。
从 0 开始,每次发生事件时,计数器的计数便会增加。执行没有停止。
创建发生事件时会删除的临时断点。
创建禁用状态的断点。
有关设置计算机级断点的信息,请参见stopi 命令。
有关所有事件的列表和语法,请参见设置事件规范。