Idea调试技巧
作者:互联网
1 问题描述
在编写程序的时候免不了面对的问题就是出现错误,而错误分为两部分:看得见的错误和看不见的错误。看的见的错误:在IntellijIDEA编辑器上对于一些语法错误或者关键词单词错误进行标红;看不见的错误:并不会被IntellijIDEA识别,但不会被运行成功。
2 问题分析看得见的错误很好被解决,本文将围绕如何解决看不见的错误进行展开。看不见的错误虽然很不被标红,但运行后会被报exception,这时候会用到调试的方法。调试能够解决许多问题,不仅仅是exception的问题,还可以检测运行过程中参数的值
3 解决方案 下面所示代码是本次围绕的所有代码图1
第一步 设置断点
在想要设置断点的代码行,在行号栏的后面单击鼠标左键或者使用快捷键(因电脑而异)。
图2
第二步 开启调试会话
点击idea左上角的小虫子,进入调试,(注意左侧的下拉框选中应该为调试运行的程序,本人的程序名为DemoOne)。
图3
在运行后(debug模式),程序会停留在打断点的位置且没有被运行本行。同时idea下方会出现此样的Debugd试图。图中红色箭头所指之处就是目前所运行之处,右侧视图里面是检测目前的变量的值。
图4
第三步 单步调试
单步调试主要应用了中的方框中的左边四个按钮:step over、step into、force step over、step out。
Step over
单步执行,运行下一条代码;运行过程中遇到子函数时是不会进入子函数内的,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。因此图 1中的代码,并不会进入maxTwo(x,y)和Math.max(x,y)两个函数,而是直接被输出了结果,然后结束程序。
Step into
运行下一条代码;运行过程中遇到子函数时能够进入子函数内的,且继续单步执行。
注意:进入的子函数,只包括自己设计编写的函数,例如图 1中第17行的maxTwo(x,y)能够被进入,但是第18行的Math.max(x,y)不能够进入函数主体。
也就是包括了stepover的功能但是多了一个能够进入子函数的功能。
force step into
运行下一条代码;运行过程中遇到任意函数都能够进入,也就解决了step into上的不足。
step out
普通语句时,结束程序;for循环时,依旧执行循环体,但循环完成后结束程序;若正在子函数内部,那么就执行完子函数余下部分,并返回到上一层函数。一般此方法用于,自己认为此函数并没有问题,就使用其进行退出,直接下一条语句。
Drop frame
当已经运行于某个函数内,该按钮会亮起,点击后可返回到当前方法的调用处,重新执行。为便于理解,笔者在maxTwo(x,y)里面多写了两条代码,点击中间的正方形框时就会被跳入到最下方的方框中的main()函数中。
4 总结本文建议介绍了如何使用idea去调试,主要对step over / step into / forcestep into/step out这四个按钮进行阐述,希望对正在阅读的您一点帮助。
参考文献WB4S ——《Intellij IDEA调试功能使用总结》——博客园
更多精彩文章:
标签:技巧,错误,into,Idea,step,子函数,调试,运行 来源: https://blog.51cto.com/u_15281984/2959201