在Ubuntu中使用JDB调试代码

在Ubuntu中使用JDB调试代码


了解JDB

JDB是JDK安装的一部分,是基于文本和命令行的调试工具,JDB是可以免费获取且平*立的,缺点是只有命令行格式。

JDB基础命令

  1. 在方法中设置断点stop in <class ID(类名)><method(方法)>
  2. 在行中设置断点stop at <class ID>:<line>
  3. 下一步:当前行step 当前行+跳过进入函数next 当前指令stepi 执行至当前方法结束step up 执行至下一断点next
  4. 查看所在行list
  5. 查看变量值:所有变量locals 单个变量print <变量名> eval <变量名>
  6. 列出断点clear
  7. 清除断点clear <class ID>.<method> clear <class>:<line>
  8. 退出quit

调试实例

  1. 对于各命令的使用

    在Ubuntu中使用JDB调试代码

    在Ubuntu中使用JDB调试代码

    在Ubuntu中使用JDB调试代码

    在Ubuntu中使用JDB调试代码

    在Ubuntu中使用JDB调试代码

  2. 对于JAVA课本第二章例4的调试

  3. 测试代码

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的值

在Ubuntu中使用JDB调试代码

在Ubuntu中使用JDB调试代码

在Ubuntu中使用JDB调试代码

调试中遇到的问题

  1. 在调试中我测试了JAVA课本第三章例9的调试,在涉及到Scanner等JAVA自带的函数时使用step会进入函数,而没有进入输入过程。

    在Ubuntu中使用JDB调试代码

  2. 经常会遇到莫名退出。

  3. 对于step up的使用有疑问,还需要再做尝试

上一篇:hdu3437 划分树 区间内小于第K大的值得和


下一篇:SQL server中如何按照某一字段中的分割符将记录拆成多条