调试
1.断点调试
(1)添加断点
- Ctrl+F8 添加断点,再点一下,取消断点 (Toggle Line Breakpoint)
(2)单步运行
- Shift+F9 调试(Debug ‘test’)
- F8 一行一行往下执行(Step Over)
(3)resume
- F9 跳到下一个断点,如果没有下一个断点就直接结束程序运行(Resume Program)
(4)查看所有断点
- Ctrl+Shift+F8 查看所有断点(view breakpoint)
(5)禁止所有断点
- 在下方的debug窗口有一个红圈带斜杠 禁止所有断点(mute breakpoint)
(6)条件断点
- 假设sb.append(s).append(" ");中s=“zhangsan”的时候才执行该断点
- 先按Ctrl+F8添加断点,再按Ctrl+Shift+F8 在Condition框中输入s.equals("zhangsan"),点Done
- Ctrl+Shift+A 输入mute,确保mute breakpoint是OFF的,再Shift+F9调试
- Alt+F8 评估表达式(Evaluate Expression),输入list,点evaluate按钮,显示list中有“zhangsan”,“list”,“wangwu”三个值,但只有在zhangsan时才停顿,其他时候直接跳过
(7)表达式求值
- Shift+F9 运行之后,Ctrl+Shift+右箭头 选中list
- Alt+F8 显示当前断点list的值
- 还可以在框中输入list.get(0),会显示出第0个是“zhangsan”;还可以在框中输入list.size(),显示结果为3
(8)运行到指定行
- 光标放到你希望运行到的那一行
- Alt+F9 运行到光标(Run to Cursor),中间都运行了,只是没展示
(9)setValue
- 如果想要验证一段逻辑是否正确,list已经被赋值为“zhangsan”,“list”,“wangwu”,想要验证list为空的时候,result的返回值是否正确
- 在下方debug窗口中选中list,按F2,直接list=null,再按F8,显示result=null,从而验证逻辑正确
2.run anywhere if you can
(1)运行当前上下文
- Ctrl+Shift+A 输入keymaps,找到Debug context configuration(调试上下文配置),添加快捷键Ctrl+Shift+F9
- 将光标停留在想调试的地方,Ctrl+Shift+F9后,IDEA会自动寻找包含这条语句最小的上下文运行
(2)在当前可运行列表中选择一个运行
- Shift+Alt+F9 调试(Debug) 在历史运行列表中选一个可运行的功能
(3)编辑当前运行
- Ctrl+Shift+A 输入keymaps,找到edit configurations(编辑配置),添加快捷键Ctrl+Shift+J
- main函数命令行传入参数时,按Ctrl+Shift+J,按Tab,在Program arguments中输入参数值,enter,Shift+F9即可运行