使用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输出变量。
具体操作可见下图
最后的最后,可以使用quit
或exit
可以退出JDB
写博目的
练习Markdown写作
整理目前使用较多的jdb调试语法,帮助加深理解,仅供参考
还有很多未使用过的命令,可使用help
查看