在Ubuntu中使用JDB调试代码
了解JDB
JDB是JDK安装的一部分,是基于文本和命令行的调试工具,JDB是可以免费获取且平台独立的,缺点是只有命令行格式。
JDB基础命令
- 在方法中设置断点
stop in <class ID(类名)><method(方法)>
- 在行中设置断点
stop at <class ID>:<line>
- 下一步:当前行
step
当前行+跳过进入函数next
当前指令stepi
执行至当前方法结束step up
执行至下一断点next
- 查看所在行
list
- 查看变量值:所有变量
locals
单个变量print <变量名>
eval <变量名>
- 列出断点
clear
- 清除断点
clear <class ID>.<method>
clear <class>:<line>
- 退出
quit
调试实例
-
对于各命令的使用
-
对于JAVA课本第二章例4的调试
-
测试代码
public class test{
public static void main(String [] args){
int N=5;
System.out.println(fact(N));
}
public static int fact(int n) {
if (n == 0)
return 1;
else
return n * fact(n-1);
}
}
并修改参数N的值
调试中遇到的问题
-
在调试中我测试了JAVA课本第三章例9的调试,在涉及到
Scanner
等JAVA自带的函数时使用step
会进入函数,而没有进入输入过程。
-
经常会遇到莫名退出。
-
对于
step up
的使用有疑问,还需要再做尝试