Sun Studio 12:使用 dbx 调试程序

when 命令

when 命令用于在发生指定事件时执行命令。

如果 dbx 处于 Java 模式下,而您要在本地代码中设置 when 断点,请使用 joff 命令(请参见joff 命令)切换到本地模式,或为 when 命令添加前缀 native(请参见native 命令)。

如果 dbx 处于 JNI 模式下,而您要在 Java 代码中设置 when 断点,请为 when 命令添加前缀 java(请参见java 命令)。

语法

when 命令的通用语法如下:

when event_specification [modifier]{command; ... }

发生指定事件时,执行上述命令。在 when 命令中禁止使用以下命令:

如果 cont 命令不带选项,则会忽略该命令。

本地模式语法

下列特定语法在本地模式中有效:

when at line_number { command; }

达到 line_number 时,执行 command

when in procedure { command; }

调用 procedure 时,执行 command

其中:

line_number 是源代码行的编号。

command 是命令名。

procedure 是过程名。

Java 模式语法

下列特定语法在 Java 模式中有效。

when at line_number

达到源码 line_number 时,执行命令。

when at file_name.line_number

达到 file_name.line_number 时,执行命令。

when in class_name.method_name

调用 class_name.method_name 时,执行命令。

when in class_name.method_name([ parameters])

调用 class_name.method_name([parameters]) 时,执行命令。

class_name 是 Java 类的名称,可以使用包路径(使用句点 (.) 作为限定符,例如 test1.extra.T1.Inner),也可以使用完整路径名(前面加磅符号 (#), 并使用斜线 (/) 和美元符号 ($) 作为限定符,例如 #test1/extra/T1$Inner)。如果使用 $ 限定符,请使用引号将 class_name 引起来。

file_name 是文件名。

line_number 是源代码行的编号。

method_name 是 Java 方法的名称。

parameters 是方法的参数。

有关所有事件的列表和语法,请参见设置事件规范

有关在发生指定的低级别事件时执行相应命令的信息,请参见wheni 命令