您当前的位置: 首页 >  Java

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Java】带你走进Debug的世界

星拱北辰 发布时间:2020-03-05 13:45:14 ,浏览量:0

关于Debug和本文

Debug,意为“调试”,是程序员必备技能之一。

Debug开始用的时候还是很不习惯的,需要适应,本文面向新手介绍Debug相关内容。

Debug的三种手段
  • 断点(breakpoint)
    • 打上断点以后,程序运行到断点处就会暂停,可以一步一步观察运行情况。
  • 跟踪(trace)
    • 跟着流程一步一步走,看看程序代码的执行流程。
    • 跟着流程一步一步走,看看变量动态的变化情况。
  • 监视(watch)
    • 即时监视:鼠标指向变量。
    • 快速监视:点右键,Inspector。
    • 添加监视:点右键,Watch。
IntelliJ IDEA 最简单的程序

先随着一个最简单的程序看IDEA的Debug流程。

我们选择一个1+2+…+10的程序,我们通过这个最基本的程序了解如何去Debug。 IDEA我个人比较喜欢用F8来逐行运行观察,发现问题再追踪。 在这里插入图片描述 在标注行数的左边栏的空白处,点一下,会出现一个红点,带出一条红线,这叫断点(IDEA的断点真的比Eclipse好看和便于增删)。

打断点的目的是使程序Debug运行到这里的时候会停住,我们能逐步地观察变量的变化、程序语句执行的流程等等。

根据我的观察,其实对于初学者,需要测试的部分中一个方法打一个断点就够了,因为一直按F8就会继续逐行执行,希望我这么说会比较容易接受一些。 在这里插入图片描述

右键Debug运行,注意不要Run,Run的话断点就无效了。 在这里插入图片描述

开始运行后,可以看出程序停在了打断点的那一行处,并且有很多灰色的k-v对,下方的Variable栏就会出现各种变量的值,可以追踪各个变量的当前值和值的变化。

按F8就可以继续执行。 在这里插入图片描述

Variable栏中蓝色的变量表示刚刚被修改过: 在这里插入图片描述 在这里插入图片描述

运行结束,得到结果:(事实上如果真有Bug,能发现的话在过程中就发现了) 在这里插入图片描述

不断的输入

我们可能需要命令行输入很多数据,有时候我们选择复制后一股脑输入Debug的Console中,但很多时候我们输入几个值并按回车就自动进入了Debug。而Debug运行到需要IO的地方就会阻塞,那么怎么去增加新的输入呢?

先输入10,然后回车: 在这里插入图片描述

程序跳到上面讲过的Debug界面: 在这里插入图片描述

顺着执行,会被IO卡住,那怎么办呢?点击Console,切到Console界面: 在这里插入图片描述

输入新的值,回车: 在这里插入图片描述 这次就不是自动切回去了,需要点击下方的Debugger: 在这里插入图片描述

程序继续执行: 在这里插入图片描述

Console识别在一次IO后就切Debugger,所以比较省事的做法是,第一次就把所有的数据输进去。

中断Debug

想中断Debug就和中断Run一样,左边栏的红色方框,点一下就能结束。

多方法打断点

下面的代码除了main()外还有一个多行的方法被调用,如果我们在for那里打上断点能不能进入function()呢?

public class PlusTest {

    private static int function(int num) {
        int sum = 0;
        for (int i = 1; i             
关注
打赏
1660750074
查看更多评论
1.9562s