Idea的debug调试可以说是非常强大,只有你想不到,没有它做不到。Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。一般我们常用于程序排错或者源码追踪。
先从一个简单的例子开始
可以看到我们的代码很简单,就是从1加到100,这个时候如果我们要看到sum的变化的,可以在第九行打个断点来看。
程序启动一定要以debug来启动,如果选择第一个,打的断点讲不会起作用哦。
运行程序,我们发现程序走到这个地方就停了,这个时候我们可以看到,sum=0,i=0,如果想要程序继续往下执行可以按快捷键F8或者下面这个按钮
可以看到,随着程序往下执行,sum和i的值一直在变化。
这里从1到100,如果从1到1000,10000怎么退出这个断点呢,这个时候可以按F9,或者
这个按钮,意思是跳到下一个断点,如果你的程序只有一个断点的话相当于跳出了debug模式,程序继续执行。
变量
从这张图可以看出来,idea除了在上面会把变量的值以不同的颜色显示出来后,在下面的框内也会断点所在的代码块的作用域内的所有变量值,如果在代码很多的情况下,在下面看起来是不是就方便多了。
接下来我们继续看:
左边的这一部分是当前的方法是哪个线程在调用,可以看到,现在调用的线程是Main线程。
进阶
看到这里很多人会问,我能不能中途修改i或者sum的值呢,当然是可以的,
可以看到,这里有个设置值,比如当前的值是1,可以在这里设置成想要设置的值,让程序用设置的值继续执行。
这个值我设置成30后,程序里边对应的i的值也成了30。
也可以选中变量直接按F2来设置。
可以看看这个菜单还有其他的选项,实际过程中使用最多的就是修改变量的值或者查看变量的值。
条件断点
还是上面的例子,如果我想看看i=50的时候sum的值是多少,怎么办呢,可能很多人会在里边写个if,判断i=50,打印sum的值,其实完全没有必要。下面仔细看。
我们在断点上右击鼠标,会弹出这个框,下面有个条件,可以在里边写响应的条件,当满足的时候程序会停住。
可以看到,我现在程序是关掉的,里边的条件是 i == 50,接下来我们以debug模式启动。
i到50的时候,程序自动进入了断点。
接下来我们主要看第二行,第二行的意思是所有线程都会被断点所阻塞,如果选择的是线程,则会阻塞住每一个线程的,我们重点来看:
我们对代码进行改写,如下:
启动程序,
我们选择的所有线程,主要看下面这张图:
我们改成了线程:
调用该代码的所有线程都会在,可以选择每个线程进行调试,可谓是强大如斯。
上面我们说了第一个,
接下来我们说说后面的,第二个和第三个都是进入到方法里边,第四个从方法里边跳出来到调用处。具体的话你们试一下就一目了然了。
此篇文章仅供入门,深层次使用收集了如下几篇,可以参考:
https://blog.csdn.net/zeal9s/article/details/102476637
https://www.cnblogs.com/yange317/p/12916858.html