记得初学Java语言时,老师让我们在记事本里面敲Hello World程序代码,然后通过javac命令编译代码,再通过java命令执行代码,告诉我们程序的流程,编写源代码 - 编译程序 - 执行程序,之后老师就告诉我们可以通过IDE编写程序,编译、执行程序很方便,不用自己通过手动命令方式去做,而且在IDE中还可以调试程序,让我们看到了使用IDE的便利,在之后所有的学习和工作时间都开始使用IDE进行程序开发,也确实很方便。但是有一个问题之前老师并没有讲,而且在书上也没有找到,那就是Java自带的命令中有没有用作调试的命令,通过查找,发现jdb是Java自带的程序调试命令,接下来就展示一下它的基础用法。
首先准备两个类,用作调试程序使用。
Test.java
public class Test {
public static void main(String[] args) {
int sum = Utils.sum(100);
System.out.println("result:" + sum);
}
}
Utils.java
public class Utils {
public static int sum(int num) {
int sum = 0;
for (int i = 1; i <= num; i++) {
sum = sum + i;
}
return sum;
}
}
接下来是使用javac命令编译程序,需要注意的是哪个类需要调试,需要在javac后加上-g选项,该选项生成所有调试信息,只有生成调试信息后,才可以使用jdb命令进行调试。编译命令如下:
javac -g Utils.java,调试Utils.java中代码
javac Test.java
使用jdb命令执行程序,jdb Test
接下来,指定断点位置,使用方法stop at <类名>:行号
使用run开始执行程序,step按步执行,print可以打印输出变量内容。
cont从断点处继续执行,因为只有这一处断点,所以程序运行到底,结束退出。
接下来列出jdb调试命令可以使用的命令列表,有兴趣的同学可以查看相关文档进行尝试。