先认识一下DEBUG面板
先讲讲右侧的几个功能。
12、Show Execution Point(Alt+F10):跳转到程序正在执行的地方,当浏览其他地方的代码后忘记程序执行到哪了或找起来麻烦时相当实用!
13、Step Over(F8):下一步(最基本的),不会进入方法。
14、Step Into(F7):进入方法内(最基本的),而且只会进入自己项目的源代码内,不会进入工具的方法源码中。
15、Force Step Into(Alt+Shift+F7):强制进入方法内,包括jdk和第三方jar里的方法。
16、Step Out(Shift+F8):跳出方法,和Step Into相对的(最基本的),跳出方法后会走到下一步。
17、Drop Frame:跳出方法,和Force Step Into相对的。
18、Run to Cursor(Alt+F9):运行至光标处,前提是中间没有断点。在下一处要调试的地方使用可以避免多次F6,也可以通过额外再加断点解决。
19、Evaluate Expression(Alt+F8):一个或多个变量通过表达式或代码计算。不局限代码里面的变量,界面如下:
查看断点处的某个对象的值
- Debug界面variables区域会自动列出很多运行中的变量、对象的值。
- 设置勾选了Show Values Inline后再代码区就好显示很多变量、对象的值。
- 选中变量、对象后,鼠标停留1-2秒后会显示对应数据值。
- Alt+鼠标单击变量或对象,可以查看对应的详细数据。
- 在watches里添加这个变量或对象观察。
- 使用Evaluate Expression变量计算器观察。
实时修改运行状态的代码变量的值
在variables区域的变量上右键,选择set values,或F2快捷键。修改的值只在当前的debug过程中有效,作为调试之用。
注意:idea暂时还不支持回滚操作,debug时不能返回上一步。
再说说左侧的一些功能
1、Rerun:程序项目重启,重新运行。
2、Update:更新应用程序,点击之后会有如下弹窗。有3个选项:Hot Swap classes,根据描述猜测为可以对修改的java文件热更新;Redeploy,重新发布;Restart server,和ReRun效果一样。(是否需要安装插件才会有呢?)
3、Resume Program(F9):恢复运行,如果之后还有断点就使程序跳到下一个断点,如果没有断点了则运行到底。
4、Pause Program:暂停程序运行。
5、Stop:停止并结束掉正在运行的程序项目。
6、View BreakPoint(Ctrl+Shift+F8):查看所有断点情况。点开弹出如下窗口,从这里可知范例中打了两个断点。另外这里可以给断点增加高级属性,如增加断点进入条件Condition,当遇到一个for循环次数较多的语句1000遍,而我们只想调试最后几遍的情况,我们可以在Condition中添加过滤条件i==990,避免按烂F6。也可以直接在断点上右键呼出简版窗口,如下图所示。
如果想要删除所有断点,可以勾选Java Line Breakpoints,再点击左上方的减号删除即可。
除此之外,还可以监控异常,自动在异常发生处添加断点。点击左上角的加号,添加一个新的异常断点。
7、Mute BreakPoint:屏蔽断点,使得所有断点失效。
以下均作为了解----------------------------------------------------------------------------
8、Get thread dump:猜测为复制一份线程镜像,使其多个线程同时执行。
9、Restore Layout:恢复Debug窗口默认布局。
10、Settings:Debug设置,如图有以下设置:
- Show Values Inline:在编辑区显示每行的变量值,勾选后效果如下;
- Show Method Return Values:显示方法返回值,勾不勾选没有看到差异效果。
- Auto-Variables Mode:按照描述理解为自动展示变量数据模式,但是勾选后再Variables区域的变量展示还少了一些。
- Sort Values Alphabetically:按照字母顺序给变量排序。
- Unmute Breakpints on Sesion Finish:会话完成后屏蔽所有断点。
11、Pin Tab:固定标签。