Oracle® Solaris Studio 12.4:使用 dbx 调试程序

退出打印视图

更新时间: 2015 年 1 月
 
 

调试 Java 代码的 dbx 模式

    调试 Java 应用程序时,dbx 处于以下三种模式之一:

  • Java 模式

  • JNI 模式

  • 本地模式

dbx 处于 Java 模式或 JNI(Java 本地接口)模式时,您可以检查 Java 应用程序的状态(其中包括 JNI 代码),并控制代码的执行。当 dbx 处于本地模式下时,可以检查 C 或 C++ JNI 代码的状态。当前模式(javajninative)存储在环境变量 jdbx_mode 中。

在 Java 模式下,可以使用 Java 语法与 dbx 交互,dbx 会使用 Java 语法显示信息。此模式用于调试纯 Java 代码或使用 Java 代码、C JNI 代码或 C++ JNI 代码混合编写的应用程序中的 Java 代码。

在 JNI 模式下,dbx 命令使用本地语法并会影响本地代码,但命令的输出既显示与 Java 有关的状态,也显示本地状态,所以 JNI 模式是一种“混合”模式。此模式用于调试使用 Java 代码、C JNI 代码或 C++ JNI 代码混合编写的应用程序的本地部分。

在本地模式下,dbx 命令仅影响本地程序,与 Java 相关的所有功能将被禁用。此模式用于调试与 Java 无关的程序。

在执行 Java 应用程序的过程中,dbx 会根据情况自动在 Java 模式和 JNI 模式间切换。例如,遇到 Java 断点时,dbx 会自动切换到 Java 模式,而当您从 Java 代码步入 JNI 代码时,它又会切换到 JNI 模式。