Oracle® Developer Studio 12.5:使用 dbx 调试程序

退出打印视图

更新时间: 2016 年 6 月
 
 

when 命令

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

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

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

语法

when 命令的通用语法如下:

when event-specification [modifier]{command; ... }

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

  • attach

  • debug

  • next

  • replay

  • rerun

  • restore

  • run

  • save

  • step

如果 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 filename.line-number

达到 filename.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 引起来。

filename 是文件名。

line-number 是源代码行的编号。

method-name 是 Java 方法的名称。

parameters 是方法的参数。

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

有关对指定的低级别事件执行命令的信息,请参见wheni 命令