JDB调试程序
- 调试代码
public class SumofRecur1{
public static void main(String[] args) {
int i = 0;
for(String arg:args){
i=Integer.parseInt(arg);
}
int sum = 0;
for(int j = 1; j<=i; j++){
sum = sum+fact(j);
}
System.out.println(sum);
}
public static int fact(int n) {
if(n==0)
return 1;
else
return n*fact(n-1);
}
}
- JDB调试
- 命令行传入3:
jdb java bin/xxx 3
- 提交N=1 , N=2, N=3时的结果截图
- 命令行传入3:
出现的错误
- 没有在命令行传入数值,单步执行时没有值,显示null
总结
对jdb调试相关知识掌握不够全面,虽然在下课前做出来了却因为截图有些慢错过了提交时间
jdb调试操作方法
- 编译:
javac -g <java>
,一定要加上-g启动jdb - 进入jdb:
jdb -classpath .:./bin <class>
- 如果要在命令行输入数值的话就直接在后面加上数值
jdb -classpath .:./bin <class> <数值>
- 如果要在命令行输入数值的话就直接在后面加上数值
- help:遇到不懂的操作步骤直接在jdb中输入help打开帮助界面
- 断点:
- 方法断点:
stop in <class>.<method>
- 行断点:
stop at <class>:<line>
- 越过断点:
cont
,例如使用stop at xxx:xxx
后停在某循环前,使用cont
直接跳过整个循环得出结果,不必在循环内一直next
- 查看断点:
clear
或stop
- 方法断点:
- 执行:
run
:设置完第一个断点后运行程序step
:单步调试,进入方法逐步调试next
:单步调试,直接完成方法执行
- 查看结果:
print <参数名>
或eval <参数名>
:查看参数的当前值list
:列出全部代码与执行情况,但之前要用use ./src
指出源代码位置
- 退出jdb:
exit
或quit
便捷操作方法
Shift+Ctrl+T
打开多个页面,通过Alt+数字(代表页面)
来切换窗口,做到脱离鼠标,节省时间