介绍
优质
小牛编辑
133浏览
2023-12-01
调试是一种技术过程,用于查找和删除程序中的错误或缺陷并获得预期结果。 调试包括测试和监控。 当程序的子单元紧密耦合时,它非常复杂。 我们可以使用遵循规定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语句,用于在控制台上打印程序的状态。 这是调试程序的传统方法。
此外,我们还有可用于调试程序的高级概念,例如:
- stepping
- breakpoints, and
- exceptions or watchpoints.
调试类型
我们可以使用各种方法调试程序:
- 使用Java字节码(Java代码的编译版本)
- 在程序中使用注释
- 将类附加到正在运行的程序
- 远程调试
- 按需调试
- 优化的代码调试
Java调试器
以下是市场上可用的Java调试器的一些示例:
- Eclipse,Netbeans等IDE包含自己的调试器(Visual cafe,Borland,JBuilder)
- 独立调试器GUI(例如Jikes,Java平台调试器和JProbe)
- 命令行调试器(Sun的JDB)
- 记事本或VI驱动(堆栈跟踪)
本教程介绍如何使用命令行调试器jdb 。
JDB
Java调试器(JDB)是Java类在命令行中调试程序的工具。 它实现了Java平台调试器体系结构。 它有助于使用Java调试接口(JDI)检测和修复Java程序中的错误。
JDK中的JDB
以下体系结构定义了JDB在JDK中的作用。 它主要包含三个单元:
- Java虚拟机工具接口(JVM TI)
- Java调试接线池(JDWP)
- Java调试器接口(JDI)
JVM TI
它是由VM实现的本机编程接口。 它提供了检查和调试VM上运行的应用程序状态的方法。 它允许实现者(VM实现者)可以轻松地包含在调试体系结构中。 它还使用名为JDWP的第三方通道进行通信。
JDWP
它定义了信息的格式以及在调试对象进程和调试器前端之间传递的请求。 拥有JDWP的主要目的是允许调试对象和调试器在单独的VM或不同平台下运行时进行通信。
JDI
它是作为前端实现的高级Java接口。 它在用户代码级别定义变量信息。 建议对所有调试器开发使用JDI层。 它使用JDWP与调试对象JVM进行通信。