Java调试之JDB命令行调试入门

0.前言

Java 调试器 (JDB) 是一个简单的 Java 类命令行调试器。 jdb 命令及其选项调用 JDB。 jdb 命令演示了 Java 平台调试器架构,并提供本地或远程 JVM 的检查和调试。

1.准备待调试的Java应用程序

public class JDB {

    public static int sum(int a,int b){
        int c = a+b;
        return c;
    }
    public static void main(String[] args) {
        String str_a = args[0];
        String str_b = args[1];

        int a=0,b=0;

        try {
            a = Integer.parseInt(str_a);
            b = Integer.parseInt(str_b);
        }catch (Exception e){
            e.printStackTrace();
        }

        System.out.println("c:" + sum(a,b));
        
    }
}

2.编译

./javac -g JDB.java

注:
-g 主要便于调试过程中显示更多的调试细节,如打印局部变量的值

3.开始调试

3.1.进入调试控制台

./jdb  JDB 10 20

进入调试控制台
注:由于被调试的Java源程序的main方法处理中需要传入两个参数,所以此处需要添加两个整数类型的参数。

3.2.设置调试入口

stop in JDB.main(java.lang.String[])

设置调试入口
注:
需要注意类名、包路径、方法名、以及方法的参数,此处需要据具体的Java源码所在的包路径、类名、方法名、方法参数进行修改。

3.3.启动调试

run

启动调试

3.4.查看当前调试位置

where

查看当前调试位置

3.5.查看当前调试上下文代码

list

查看当前调试上下文代码

3.6.单步调试

next

单步调试

3.7.进入方法调试

step

进入方法调试
注:
在使用step命令前需要确认(可通过where命令进行确认)当前调试行有对目标调试方法的调用,如System.out.println(“c:” + sum(a,b));这行代码中的确有对sum方法的调用。

3.8.查看所有变量或参数

locals

查看所有局部变量

3.9.查看具体变量或参数

print {name}

查看具体变量或参数

3.10.完成调试

cont

完成调试

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要进行Java程序的调试和测试,可以使用以下工具和方法: 1. 使用集成开发环境(IDE):常用的Java开发环境(如Eclipse、IntelliJ IDEA和NetBeans)都提供了调试功能。你可以在IDE中设置断点,逐行执行程序,并观察变量的值和程序的执行流程。 2. 打印日志:在关键的代码段中插入打印语句,输出变量的值和程序执行的状态。通过查看日志信息,可以了解程序的执行过程和可能存在的问题。 3. 使用调试工具:Java提供了一些调试工具,例如jdbJava Debugger)和jconsole。jdbJava命令行调试器,可以通过命令行界面进行程序的调试。jconsole是Java监视和管理控制台,可以用于监视Java应用程序的性能和调试信息。 4. 单元测试框架:使用单元测试框架(如JUnit或TestNG)编写测试用例,并对程序中的不同模块进行单元测试。通过运行测试用例,可以验证程序的正确性,并及早发现潜在的问题。 5. 调试工具和技术:除了IDE和命令行调试器外,还有一些第三方调试工具和技术可供选择。例如,VisualVM可以监视Java应用程序的性能,并提供线程分析和堆转储等功能。另外,还有一些开源的调试工具,如JProfiler和YourKit,提供更丰富的调试和性能分析功能。 总之,调试和测试是开发过程中不可或缺的环节。通过合理使用工具和方法,可以提高程序的质量和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值