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