📜  JDB-简介

📅  最后修改于: 2020-11-13 04:45:37             🧑  作者: Mango


调试是一种技术过程,用于查找和删除程序中的错误或缺陷并获得预期的结果。调试包括测试和监视。当程序的子单元紧密耦合时,这非常复杂。我们可以使用遵循规定API的调试器工具来调试程序。调试器使您可以遍历代码的各个方面,检查所有元素,并删除错误(如有)。

调试技术

有多种调试Java程序的技术。旧的调试方法是在每个段的末尾使用print语句,这将在控制台上打印trace语句。看一下下面的代码。

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);
   }
}

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

此外,我们还有一些高级概念可用于调试程序,例如:

  • 断点,以及
  • 异常或观察点。

调试类型

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

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

Java调试器

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

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

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

JDB

Java调试器(JDB)是Java类在命令行中调试程序的工具。它实现了Java Platform Debugger Architecture。它有助于使用Java调试接口(JDI)检测和修复Java程序中的错误。

JDK中的JDB

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

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

JDB架构

JVM TI

它是由VM实现的本机编程接口。它提供了检查和调试VM上运行的应用程序状态的方法。它允许一个实施程序(VM实施程序),该实施程序可以轻松地包含在调试体系结构中。它还使用称为JDWP的第三方渠道进行通信。

JDWP

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

JDI

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