IntellijIDEA2017debug断点调试技巧与总结详解篇
在调试代码的时候,你的项⽬得debug模式启动,也就是点那个绿⾊的甲⾍启动服务器,然后,就可以在代码⾥⾯断点调试啦。
下⾯不要在意,这个快捷键具体是啥,因为,这个keymap是可以⾃⼰配置的,有的⼈keymap是mac版的,有的是Windows版的。
我的就是Windows,⽽且修改keymap为eclipse的keymap,因为我算是eclipse转过来的吧。
下⾯直接看图,详细解释,每⼀个按钮(按钮对应图中的数字)都是什么功能。
1,rerun XXX,这个就是直接重新跑某个程序。idea debug
2,这个相当于eclipse⾥⾯的f8,直接跑完,到下⼀个断点停下,没有就直接跑完程序。
3,停⽌项⽬或者程序。要是⾃⼰的main呢,点⼀下就停下了,要是Java web项⽬,则点2下,就把服务器给停了。
4,查看所有的断点设置情况。具体详情,下⾯有⽰意图,再细细解释。
5,直接取消所有断点,让所有断点⽆效。
6,要是你⼀不⼩⼼把这个下⾯的布局给弄乱了,你点这个,就把下⾯的布局给还原咯。
7,跳转到当前代码所执⾏的地⽅,也就是说你在看代码的时候,点到其他地⽅,⼀点这个按钮,就到了程序执⾏到当前哪⾏的代码的地⽅。
8,下⼀步,如果是⽅法,他是不会跳进去的。就是⼀⾏⾏的往下⾛。(eclipse⾥⾯的快捷键就是f6)
9,跳转到详情,如果下⼀⾏调试代码是可执⾏⽅法,就可以f5进去,查看这个⽅法的运⾏详细情况。重点就是点进去执⾏
10,从详情跳出去,和上⾯的9相反。
11,看字⾯意思就是跳转到那个光标所在的地⽅,前提是他能路上没断点拦着(这个也很好⽤的,下⾯详细解释⼀下他的好处)。
12,这个点开之后,可以计算你想要看的代码段的值,后⾯详细上图。
13,看意思,同eclipse⾥⾯的watch,查看某个对象的值,⾃定义的对象。
14,把⾃定义的查看对象的值,分开到另⼀个tab页。
15,有时候当我们步⼊⽅法体之后,还想回退到⽅法体外,点这个按钮后,断点重新回到⽅法体之外。在继续还是可以再次进到⽅法内(这个很好的,假设你⼿快,跳过想断点的⽅法,然后这个drop frame,出去之后,就可以再次debug啦。这个很是着重介绍⼀下,就算你只打⼀个断点,⼀不⼩⼼跑了,不怕,点这个,推出,然后再执⾏,还是会再次进⼊断点的。这个很管⽤的,要是不知道的话,就的再从头到尾的执⾏⼀遍,很是⿇烦哦。所以,再使劲的强调⼀下这个⾼科技按钮。)
查看断点处的某个对象的值,可以 如下⼏个⽅法:
1,选中对象后,⿏标悬停在对象上 2 秒左右
2,在watch⾥⾯添加这个对象,
3,下⾯也许会⾃动列出来你代码⾥⾯有的
4,使⽤上⾯图上标注的12的那个按钮
5,alter + click,按住alter,然后点击想看的变量,就出现啦变量的值,这个厉害,感谢 40 楼⽼铁的评论。
下⾯就再详细说下 4,12,13,14,11
4,查看所有的断点的详情,点开如下所⽰。
在图中condition中可以设置断点的条件,当i==4的时候,才停下。查看具体断点内容。
关于设置断点条件,还可以,直接在代码断点处,右键设置,完啦之后,done,设置完成。
12,这个⽤的也⽐较多,这个就⽐较随意。可以根据你的输⼊,计算你要的结果,不局限代码⾥⾯的变量啥的。这个在debug的时候,使⽤起来是很⽅便的。
13,14,这2个点完之后,效果如下图,只是把⾃定义的变量和代码⾥⾯⾃带的变量分在两个tab页⾯展⽰。
你可以点13号按钮,⾃⾏添加,你想查看的变量的值。
11,看字⾯意思就是跳转到那个光标所在的地⽅,前提是他能路上没断点拦着
⼀般看到这个图,⼤概都是在for循环之前打了个断点,当你在⼀步步的跟踪代码执⾏的时候,遇到这个for循环,要是还是⼀步步的继续,那就得点很多下,要是循环集合很⼤,岂不是很费时,⼀般估计就会在for循环的后⾯(⽐如在我这个图的39⾏打个断点,来⼀下⼦跳过for循环)再打个断点,那么你为了⼀步步的跟踪代码执⾏,不得不继续类似的操作,添加了不少没⽤的断点。你这么做是因为你不知道这run to cursor ,就是直接执⾏到⿏标光标处。通俗的解释⼀下,看我图39⾏,当前⿏标的光标就在这地⽅,你直接点这个run to cursor 这个debug功能按钮,就会直接跳过for循环,运⾏到光标所在的位置,停下。这就省去了打n多个不需要的断点啦。这个按钮的功能不错吧。
还有个需求,就是
在调试代码的时候,实时的修改,运⾏状态的代码变量的值。
仔细看下图,就知道,怎么在实时调试代码的时候,怎么设置某些变量的值,可以看到,我上⾯在输⼊a之后,下⾯就有类似你写代码时候的提⽰,你就可以在这地⽅修改变量的值啦
(更新)
上⾯的描述好像有问题,不应该使⽤watch去修改变量的值,具体看图吧。
可以看到,我在watch⾥⾯写了⾏代码,给这个list add⼀个“123456”,然后发现,代码⾛⼀⾏,他就add⼀次,然后就发现我上⾯写的不对啦,不是这么来修改正在运⾏的变量的值的。
应该像这张图这么来修改变量的值,这个是⼀次性操作的。
这个地⽅,快捷键是f2,具体的快捷键可能不⼀样,f2快捷键之后,就会出格框,⾥⾯输⼊你想修改的值,就可以运⾏的时候,修改变量的值。这个还有你修改的记录。
关于调试的时候,
设置运⾏时的参数,如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。