使用JDB调试简单递归程序

跟着娄老师的博客学习,

首先在终端使用Ctrl+Shift+T打开三个标签,方便操作。

使用Vim编辑自己的程序,练习程序如下

  1 public class Factorial {
2 public static void main(String [] args) {
3 System.out.println(fact(5));
4 }
5
6 public static int fact(int n) {
7 if (n == 0)
8 return 1;
9 else
10 return n * fact(n-1);
11 }
12 }

将其存为Factorial.java文件后,使用javac -g Factorial.java对其进行编译(其中用参数 g 是为了产生各种调试信息,不然就无法调试)

在这里可以直接使用java Factorial运行。那么下一步就开始切入正题,JDB的调试

使用jdb Factorial可以开始进行调试,但是如果显示未找到调试的类,可以尝试jdb -classpath . Factorial

使用run开始执行程序的主类

设置断点使用stop命令设置断点,stop in用来设置方法断点,stop at 设置行断点。

此时可以用locals命令查看变量,list 命令来查看当前运行的代码(箭头指到地方即为当前程序运行到的地方),用cont命令进入下一条命令,也可以使用print输出变量。

具体操作可见下图

JAVA初学者的JDB 尝试-LMLPHP

JAVA初学者的JDB 尝试-LMLPHP

最后的最后,可以使用quitexit可以退出JDB

写博目的

练习Markdown写作

整理目前使用较多的jdb调试语法,帮助加深理解,仅供参考

还有很多未使用过的命令,可使用help查看

JAVA初学者的JDB 尝试-LMLPHP

参考文献

使用JDB调试Java程序

JDB官方文档

04-28 05:26