JDB - 简介



调试是一个技术过程,用于查找和移除程序中的错误或缺陷,并获得预期的结果。调试包括测试和监控。当程序的子单元紧密耦合时,调试会变得非常复杂。我们可以使用遵循规定的 API 的调试器工具来调试程序。调试器允许您逐步执行代码的每个方面,检查所有元素,并消除任何错误。

调试技术

有不同的技术可以用来调试 Java 程序。旧的调试方法是使用打印语句在每个段的末尾,这将在控制台上打印跟踪语句。请查看以下代码。

pubic class Add
{
   public static void main(String ar[])
   {
      int a = ar[0];
      system.out.println("A : " + a);
      
      int b = ar[1];
      system.out.println("B : " + b);
      
      int c = a + b;
      system.out.println("C = a + b : " + c);
   }
}

这里,我们有一个程序,它将两个数字相加并打印输出。请注意,在每一步中,我们都引入了一个打印语句,该语句在控制台上打印程序的状态。这是调试程序的传统方法。

此外,我们还有可以用来调试程序的高级概念,例如

  • 单步执行
  • 断点,以及
  • 异常或监视点。

调试类型

我们可以使用多种方法来调试程序

  • 使用 Java 字节码(Java 代码的编译版本)
  • 在程序中使用注释
  • 将类附加到正在运行的程序
  • 远程调试
  • 按需调试
  • 优化代码调试

Java 调试器

以下是一些市面上可用的 Java 调试器的示例

  • IDE(如 Eclipse、Netbeans 等)包含自己的调试器(Visual cafe、Borland、JBuilder)
  • 独立调试器 GUI(例如 Jikes、Java 平台调试器和 JProbe)
  • 命令行调试器(Sun 的 JDB)
  • Notepad 或 VI 驱动(堆栈跟踪)

本教程介绍如何使用命令行调试器jdb

JDB

Java 调试器 (JDB) 是一种用于 Java 类的工具,可以在命令行中调试程序。它实现了 Java 平台调试器架构。它有助于使用 Java 调试接口 (JDI) 检测和修复 Java 程序中的错误。

JDK 中的 JDB

以下架构定义了 JDB 在 JDK 中的角色。它主要包含三个单元

  • Java 虚拟机工具接口 (JVM TI)
  • Java 调试线池 (JDWP)
  • Java 调试接口 (JDI)
JDB Architecture

JVM TI

它是由 VM 实现的本机编程接口。它提供了一种检查和调试在 VM 上运行的应用程序状态的方法。它允许实现者(VM 实现者)可以轻松地封装到调试架构中。它还使用名为JDWP的第三方通道进行通信。

JDWP

它定义了在被调试进程和调试器前端之间传递的信息和请求的格式。拥有 JDWP 的主要目的是允许被调试程序和调试器在它们在单独的 VM 或单独的平台上运行时进行通信。

JDI

它是一个作为前端实现的高级 Java 接口。它定义了用户代码级别上的变量信息。建议对所有调试器开发使用 JDI 层。它使用 JDWP 与被调试的 JVM 进行通信。

广告