how2j.cn

步骤 1 : 准备一段Java代码   
步骤 2 : 设置断点   
步骤 3 : 点击调试按钮   
步骤 4 : 确认切换到调试Perspective   
步骤 5 : 切换回开发Java代码的Perspective   
步骤 6 : 调试Perspective   
步骤 7 : 单步运行   
步骤 8 : 观察右上角 Variables的变化   
步骤 9 : 退出   

步骤 1 :

准备一段Java代码

edit
这是一个有for循环的Java代码,利于观察设置断点的效果
public class HelloWorld { public static void main(String[] args) { int moneyEachDay = 0; int day = 10; int sum=0; for (int i = 1; i <= day; i++) { if(0==moneyEachDay) moneyEachDay = 1; else moneyEachDay *= 2; sum+=moneyEachDay; System.out.println(i + " 天之后,洪帮主手中的钱总数是: " + sum ); } } }
public class HelloWorld {
    public static void main(String[] args) {
 
        int moneyEachDay = 0;
        int day = 10;
        int sum=0;
        for (int i = 1; i <= day; i++) {
            if(0==moneyEachDay)
                moneyEachDay = 1;
            else
                moneyEachDay *= 2;
             
            sum+=moneyEachDay;
             
            System.out.println(i + " 天之后,洪帮主手中的钱总数是: " + sum );
        }
    }
 
}
断点概念: 断点就是指在调试模式下,当代码运行到断点这个位置的时候,就会停下来,便于开发者观察相关数据,进行代码逻辑的分析,排错。

设置断点有几种方式,比如要在第八行设置断点
1. 在行号8那个位置,右键点击鼠标,然后选择Toggle Breakpoint就可以添加或者删除断点了
2. 在行号8那个位置, 双击鼠标左键也可以添加或者删除断点。
3. 菜单->Run也可以,不常用,没有鼠标方便。
设置断点
步骤 3 :

点击调试按钮

edit
在平时用运行按钮左边, 有个虫子按钮,就是debug按钮。
点击进行调试。
注: 需要注意的是,当前类,一定要有主方法,否则就会调试到 上一次成功运行的程序
点击调试按钮
步骤 4 :

确认切换到调试Perspective

edit
如果是第一次运行,会弹出一个对话框询问是否要切换到调试视觉, 点击YES。
确认切换到调试Perspective
步骤 5 :

切换回开发Java代码的Perspective

edit
点击右上角的Debug旁边的 Java,就可以切换回原来熟悉的Java 开发环境了
切换回开发Java代码的Perspective
步骤 6 :

调试Perspective

edit
在调试视觉,需要关注的是这么4个区域
1. 当前是哪个线程,因为是非多线程程序,所以就是主线程
2. 对第八行运行有影响的几个变量的值,这个就是调试的主要作用,观察这些值的多少,进行分析问题所在或者理解代码逻辑
3. 当前代码,表示马上就要运行第八行,但是还没有来得及运行第八行
4. 控制台输出

其他还有些区域,不常用
调试Perspective
点击这个按钮,就可以一行一行的执行了,或者用快捷键F6
单步运行
步骤 8 :

观察右上角 Variables的变化

edit
这是调试期间主要需要注意的区域,通过观察,分析,理解这些值的变化来加强对代码的理解,或者寻找代码的错误所在
观察右上角 Variables的变化
红色按钮,点击退出
退出


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2020-03-11 Debug调试视角控制台没有显示当前所执行的内容?
XUTIEZHU




老师你好,我复制了您的代码,但是Debug调试视角控制台没有显示当前所执行的内容,变量值也有不一样的怎么回事
加载中
package Practise311;
public class Deebug{
    public static void main(String[] args) {
 
        int moneyEachDay = 0;
        int day = 10;
        int sum=0;
        for (int i = 1; i <= day; i++) {
            if(0==moneyEachDay)
                moneyEachDay = 1;
            else
                moneyEachDay *= 2;
             
            sum+=moneyEachDay;
             
            System.out.println(i + " 天之后,洪帮主手中的钱总数是: " + sum );
        }
    }
 
}

							


4 个答案

meige
答案时间:2020-08-18
我也知道了你是个傻子

luodawei
答案时间:2020-06-03
点分步执行就行了呀

ProgramApe
答案时间:2020-03-29

XUTIEZHU
答案时间:2020-03-11
老师我又知道了,我真的是个傻子。



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2020-01-27 调试可以跃进吗
xs930588




这是我的代码, for循环从n=100一次次+1,直至1000; 现在我对调试的理解停留在单步运行上, 请问除此之外,有什么办法可以快速看到300附近的参数情况?
public class HelloWorld{
 public static void main(String[] args){
   for (int n = 100; n <=999; n++) {
	int n1=n%10;
	int n2=(n-n1)%100/10;
	int n3=(n-10*n2-n1)/100;
	if((Math.pow(n1, 3)+Math.pow(n2, 3)+Math.pow(n3, 3))==n)
		 System.out.println("水仙花数"+n);
}
	
 }
}

							


1 个答案

Soul_xy
答案时间:2020-02-07
在循环中间加一段代码, if(n==300){ sysout; //随便什么,在这里加断点 } 然后debug就行 如果n=1时就进入debug了,可以将加在前面的断点取消掉,然后点绿色三角按钮,会自动执行到下一个断点处,此时n=300;然后你再加上之前的断点,逐步调试



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2019-09-16 又学到了一招,感谢站长,每天进步一点点
2019-07-20 idea如何进行断点调试
2019-07-16 Mac版eclipse如何进行断点调试?


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 4 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 工具和中间件-调试-Java应用Debug 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 635924385
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图