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

退出打印视图

更新时间: 2015 年 1 月
 
 

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

启动应用程序时,如果指定了以下示例中显示的选项,则可将 dbx 连接到运行的 Java 应用程序。 启动应用程序后,您可将 dbx 命令与运行的 Java 进程的进程 ID 结合使用,以开始调试。

$ java -agentlib:dbx_agent myclass.class
$ dbx - 2345

    为了使 JVM 软件能够找到 libdbx_agent.so,需要在运行 Java 应用程序前将适当路径添加到 LD_LIBRARY_PATH 中:

  • 在运行 Solaris Oracle OS 的系统的 32 位版本的 JVM 软件上:添加 /install-dir/SUNWspro/lib/libdbx_agent.so

  • 在运行 Oracle Solaris OS 的系统(基于 SPARC)的 64 位版本的 JVM 软件上:将 /install-dir/SUNWspro/lib/v9/libdbx_agent.so 添加到 LD_LIBRARY_PATH

  • 在运行 Linux OS 的系统(基于 x64)的 64位 版本的 JVM 软件上:将 /install-dir/sunstudio12/lib/amd64/libdbx_agent.so 添加到 LD_LIBRARY_PATH

install-dir 是 Oracle Solaris Studio 安装的位置。

dbx 连接到运行的应用程序时,dbx 将以 Java 模式开始调试应用程序。

如果 Java 应用程序需要 64 位的对象库,请在启动应用程序时包括 -d64 选项。 之后,将 dbx 连接到应用程序时,dbx 将使用运行该应用程序的 64 位 JVM 软件。

$ java -agentlib:dbx_agent
$ dbx - 2345

以下任务介绍如何使用进程 ID 将 dbx 连接到特定的 Java 进程。

连接到运行中的 Java 进程

  1. 按照上一节中所述,通过将 libdbx_agent.so 添加到 LD_LIBRARY_PATH,确保 JVM 软件可找到 libdbx_agent.so
  2. 通过键入以下命令启动 Java 应用程序:

    java –agentlib:dbx_agent myclass.class

  3. 然后,通过使用进程 ID 启动 dbx 便可连接到进程:

    dbx -process-ID