JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.3:使用 dbx 调试程序     Oracle Solaris Studio 12.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  dbx 入门

2.  启动 dbx

3.  定制 dbx

4.  查看和导航到代码

5.  控制程序执行

6.  设置断点和跟踪

7.  使用调用堆栈

8.  求值和显示数据

9.  使用运行时检查

10.  修复并继续

11.  调试多线程应用程序

12.  调试子进程

13.  调试 OpenMP 程序

14.  处理信号

15.  使用 dbx 调试 C++

16.  使用 dbx 调试 Fortran

17.  使用 dbx 调试 Java 应用程序

使用 dbx 调试 Java 代码

使用 dbx 调试 Java 代码的功能

使用 dbx 调试 Java 代码的限制

Java 调试的环境变量

开始调试 Java 应用程序

调试类文件

调试 JAR 文件

调试有包装器的 Java 应用程序

dbx 连接到正在运行的 Java 应用程序

调试内嵌 Java 应用程序的 C 应用程序或 C++ 应用程序

将参数传递给 JVM 软件

指定 Java 源文件的位置

指定 C 源文件或 C++ 源文件的位置

为使用定制类加载器的类文件指定路径

在 Java 方法中设置断点

在本地 (JNI) 代码中设置断点

定制 JVM 软件的启动

指定 JVM 软件的路径名

将运行参数传递给 JVM 软件

指定 Java 应用程序的定制包装器

使用接受命令行选项的定制包装器

使用不接受命令行选项的定制包装器

指定 64 位 JVM 软件

调试 Java 代码的 dbx 模式

从 Java 或 JNI 模式切换到本地模式

中断执行时切换模式

在 Java 模式下使用 dbx 命令

dbx 命令中的 Java 表达式求值

dbx 命令使用的静态和动态信息

在 Java 模式和本地模式下具有完全相同语法和功能的命令

在 Java 模式下有不同语法的命令

只在 Java 模式下有效的命令

18.  在机器指令级调试

19.  将 dbx 与 Korn Shell 配合使用

20.  调试共享库

A.  修改程序状态

B.  事件管理

C.  宏

D.  命令参考

索引

调试 Java 代码的 dbx 模式

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

dbx 处于 Java 模式或 JNI(Java Native Interface,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 模式。

从 Java 或 JNI 模式切换到本地模式

dbx 不会自动切换到本地模式。可以使用 joff 命令显式从 Java 模式或 JNI 模式切换到本地模式,也可以使用 jon 命令从本地模式切换到 Java 模式。

中断执行时切换模式

如果中断执行 Java 应用程序(例如,使用 Ctrl-C),dbx 会尝试通过将应用程序置于安全状态并挂起所有线程将模式自动设置为 Java/JNI 模式。

如果 dbx 无法挂起应用程序并切换到 Java/JNI 模式,dbx 便会切换到本地模式。然后,您可以使用 jon 命令切换到 Java 模式来检查程序的状态。