Idea Debug界面整体如下图所示:
- Rerun(Ctrl+F11):程序项目重启,重新运行。
- Update(Ctrl+F10):更新应用程序,点击之后会有如下弹窗。有3个选项:Hot Swap classes,根据描述猜测为可以对修改的java文件热更新;Redeploy,重新发布;Restart server,和ReRun效果一样。
- Resume Program(F8):恢复运行,使程序无视所有断点正常运行。
- Pause Program:暂停程序运行。
- Stop(Ctrl+F2):停止结束掉程序项目。
- View BreakPoint(Ctrl+Shift+F8):查看所有断点情况。点开弹出如下窗口,从这里可知范例中打了两个断点。另外这里可以给断点增加高级属性,如增加断点进入条件Condition,当遇到一个for循环次数较多的语句1000遍,而我们只想调试最后几遍的情况,我们可以在Condition中添加过滤条件i==990,避免按烂F6。也可以直接在断点上右键呼出简版窗口,如下图所示。
- Mute BreakPoint:屏蔽断点,是所有断点失效。
- Get thread dump:猜测为复制一份线程镜像,使其多个线程同时执行。
- Restore Layout:恢复Debug窗口默认布局。
- Settings:Debug设置,如图有以下设置:
- Show Values Inline:在编辑区显示每行的变量值,勾选后效果如下;
- Show Method Return Values:显示方法返回值,勾不勾选没有看到差异效果。
- Auto-Variables Mode:按照描述理解为自动展示变量数据模式,但是勾选后再Variables区域的变量展示还少了一些。
- Sort Values Alphabetically:按照字母顺序给变量排序。
- Unmute Breakpints on Sesion Finish:会话完成后屏蔽所有断点。
- Pin Tab:固定标签。
- Show Execution Point(Alt+F10):跳转到程序正在执行的地方,当浏览其他地方的代码后忘记程序执行到哪了或找起来麻烦时相当实用!
- Step Over(F6):下一步(最基本的)。
- Step Into(F5):进入方法内(最基本的)。
- Force Step Into(Alt+Shift+F7):进入方法内,包括jdk和第三方jar里的方法。
- Step Out(F7):跳出方法,和Step Into相对的(最基本的)。
- Drop Frame:跳出方法,和Force Step Into相对的。
- Run to Cursor(Ctrl+R):运行至光标处,前提是中间没有断点。在距离下一处要调试的地方使用可以避免多次F6,也可以通过额外再加断点解决。
- Evaluate Expression(Ctrl+U):一个或多个变量通过表达式或代码计算。不局限代码里面的变量,界面如下:
- Restore Threads View:恢复线程视图。展示线程窗口,如下图所示:
- Restore Memory View:恢复内存视图。展示内存窗口,不知道为什么啥信息也没有,如下图所示:
- Restore OverHead View:恢复上层视图。不知道怎么用的,如下图所示:
查看断点处的某个对象的值
- Debug界面variables区域会自动列出很多运行中的变量、对象的值。
- 设置勾选了Show Values Inline后再代码区就好显示很多变量、对象的值。
- 选中变量、对象后,鼠标停留1-2秒后会显示对应数据值。
- Alt+鼠标单击变量或对象,可以查看对应的详细数据。
- 在watches里添加这个变量或对象观察。
- 使用Evaluate Expression变量计算器观察。
实时修改运行状态的代码变量的值
在variables区域的变量上右键弹窗以下菜单栏,选择set values,或F2快捷键