一、 Debug 调试工具

1. Debug的作用

Debug可以追踪程序运行的流程,通过追踪程序运行流程我们就可以了解整个程序的运行,当然也可以找到程序运行异常的地方,我们还可以通过这种方式来学习第三方的框架等。

2. Debug的使用步骤

1)、在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦;
2)、去IDEA设置中勾选 Show debug window on breakpoint,这样做的目的是:当有请求经过断点时会自动打开 Debug 窗口;
image.png
3)、如果你的IDEA底部没有显示工具栏或状态栏,可以在View里打开,显示出工具栏会方便我们使用。可以自己去尝试下这四个选项(不同IDEA版本可能位置不同)。
image.png

3. IDEA中Debug按钮详解

image.png
1,rerun XXX,这个就是直接重新跑某个程序。
2,这个相当于eclipse里面的f8,直接跑完,到下一个断点停下,没有就直接跑完程序。IDEA快捷方式(F9)
3,停止项目或者程序。要是自己的main呢,点一下就停下了,要是Java web项目,则点2下,就把服务器给停了。
4,查看所有的断点设置情况。
5,直接取消所有断点,让所有断点无效。
6,要是你一不小心把这个下面的布局给弄乱了,你点这个,就把下面的布局给还原咯。
7,跳转到当前代码所执行的地方,也就是说你在看代码的时候,点到其他地方,一点这个按钮,就到了程序执行到当前哪行的代码的地方。
8,下一步,如果是方法,他是不会跳进去的。就是一行行的往下走。IDEA快捷方式(F8),
9,跳转到详情,如果下一行调试代码是可执行方法,就可以f5进去,查看这个方法的运行详细情况。重点就是点进去执行,IDEA快捷方式(F7或者alt+shift+F7),
10,从详情跳出去,和上面的9相反。IDEA快捷方式(shift+F8),
11,看字面意思就是跳转到那个光标所在的地方,前提是他能路上没断点拦着(这个也很好用的,下面详细解释一下他的好处)。IDEA快捷方式(alt + F9),
12,这个点开之后,可以计算你想要看的代码段的值,后面详细上图。
13,看意思,同eclipse里面的watch,查看某个对象的值,自定义的对象。
14,把自定义的查看对象的值,分开到另一个tab页。
15,有时候当我们步入方法体之后,还想回退到方法体外,点这个按钮后,断点重新回到方法体之外。在继续还是可以再次进到方法内(这个很好的,假设你手快,跳过想断点的方法,然后这个drop frame,出去之后,就可以再次debug啦。这个很是着重介绍一下,就算你只打一个断点,一不小心跑了,不怕,点这个,推出,然后再执行,还是会再次进入断点的。这个很管用的,要是不知道的话,就的再从头到尾的执行一遍,很是麻烦哦。所以,再使劲的强调一下这个高科技按钮。)

查看断点处的某个对象的值,可以 如下几个方法:
1,选中对象后,鼠标悬停在对象上 2 秒左右
2,在watch里面添加这个对象,
3,下面也许会自动列出来你代码里面有的
4,使用上面图上标注的12的那个按钮
5,alter + click,按住alter,然后点击想看的变量,就出现啦变量的值

11,看字面意思就是跳转到那个光标所在的地方,前提是他能路上没断点拦着
image.png
一般看到这个图,大概都是在for循环之前打了个断点,当你在一步步的跟踪代码执行的时候,遇到这个for循环,要是还是一步步的继续,那就得点很多下,要是循环集合很大,岂不是很费时,一般估计就会在for循环的后面(比如在我这个图的39行打个断点,来一下子跳过for循环)再打个断点,那么你为了一步步的跟踪代码执行,不得不继续类似的操作,添加了不少没用的断点。你这么做是因为你不知道这run to cursor ,就是直接执行到鼠标光标处。通俗的解释一下,看我图39行,当前鼠标的光标就在这地方,你直接点这个run to cursor 这个debug功能按钮,就会直接跳过for循环,运行到光标所在的位置,停下。这就省去了打n多个不需要的断点啦。这个按钮的功能不错吧。