【IDEA】(4)---很好用的DEBUG功能
IDEA—DEBUG功能
一、常用快捷键
快捷键并不是完全一样的,我这边是MAC安装的IDEA, 这边最主要还是知道DEBUG时常用的功能。
1、快捷键
F7 #进入下一步,如果当前行是一个方法,则进入当前方法体内
F8 #进入下一步,如果当前行是一个方法,则不进入当前方法体内
F9 #跳到下一个断点,如果没有则直接运行结束
Alt + F8 #表达式求值
Alt + F9 #代码会运行至光标行,而不需要打断点
Shift + F8 #跳出进入的方法体,回到上级代码处
Ctrl+Shift+F9 #DEBUG模式运行
Ctrl+F5 #重新运行
Shift+Command+F8 #查看所有断点,为断点添加条件等
2、图形化界面解释
第一组
(Alt + F10)
:如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前执行的断点。
(F8)
:步过,一行一行地往下走,如果这一行上有方法不会进入方法。
(F7)
:步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。
(Alt + Shift + F7)
:强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
(Shift + F8)
:步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
Drop Frame (默认无快捷键)
:回退断点,后面章节详细说明。
(Alt + F9)
:运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
Evaluate Expression (Alt + F8)
:计算表达式,后面章节详细说明。
第二组
Rerun 'xxxx'
:重新运行程序,会关闭服务后重新启动程序。
(Ctrl + F5)
:更新程序,一般在你的代码有改动后可执行这个功能。
(F9)
:跳到下一个断点,如果没有则直接运行结束。
Pause Program
:暂停程序,启用Debug。目前没发现具体用法。
(Ctrl + F2)
:连续按两下,关闭程序。有时候你会发现关闭服务再启动时,报端口被占用,这是因为没完全关闭服务的原因,你就需要查杀所有JVM进程了。
(Ctrl + Shift + F8)
:查看所有断点。
Mute Breakpoints
:哑的断点,选择这个后,所有断点变为灰色,断点失效,按F9则可以直接运行完程序。
3、MAC的功能键实效
如果你是mac系统你的功能键F1~F12,对于IDEA可能是实效的,这里需要相关设置。
二、计算表达式
可以使用这个操作在调试过程中计算某个表达式的值,比如是否为空,获取其它值的计算,同时它还可以修改属性值。
1、计算表达式
int age = 10;
String name = "小小";
//这里有个判断条件,我想知道age > 5 的计算结果
if (age > 5 && name == null) {
System.out.println("age = " + age);
}
第一种直接选中age>5
它会直接告诉你计算结果。
第二种通过Alt+F9
输入计算表达式,也会计算结果。
2、修改属性字段
下面age为10,那么age == 18 就为false
这时我通过Alt+F9
修改属性
发现这个属性值已经修改成我们自定义的18了。
重要
顺便说下如果我们需要查看一些重要的属性值的变化,那么我们可以将variables
中的属性添加到Watches
进行前后观察,这样更加直观。比如下面age。
三、断点条件设置
这个一般循环内比较实用,因为我们在循环体内设置断点,如果没有条件判断那么我们需要一个一个执行。条件判断就带来很大便利。
在该断点设置条件判断,设置好后该断点上会有个❓
四、异常断点
好多时候debug的时候报异常了,如果异常恰好在for里,这个时候你也不能用条件判断打断点,因为不知道用什么条件的打这个断点,这个时候异常断点就很有用了。
比如下面,并没有打上任何断点
设置异常断点
快捷键Shift+Command+F8
点击+号,设置相关异常
运行结果
只要自己变优秀了,其他的事情才会跟着好起来(少将19)
【IDEA】(4)---很好用的DEBUG功能的更多相关文章
- IntelliJ IDEA 2020 的Debug功能也太好用了,真香!
写在前边 作为一个有点强迫症的程序员来说,所有的应用软件.开发工具都必须要升级到最高版本,否则就会很难受到坐立不安.日思夜想.茶饭不思.至于什么时候得的这种病我也记不清了,哈哈哈 IntelliJ I ...
- JAVA基础学习之IP简述使用、反射、正则表达式操作、网络爬虫、可变参数、了解和入门注解的应用、使用Eclipse的Debug功能(7)
1.IP简述使用//获取本地主机ip地址对象.InetAddress ip = InetAddress.getLocalHost();//获取其他主机的ip地址对象.ip = InetAddress. ...
- 云笔记项目-网页端debug功能学习
在做云笔记项目的过程中,除了服务端在eclipse中debug调试代码外,有时候需要在浏览器端也需要进行debug调试,刘老师举了一个冒泡排序算法的dubug例子,进行了讲解. 首先上浏览器端测试代码 ...
- Flask的Debug功能非常酷
Flask是一个Python开发框架.在试用的过程中发现它的debug功能非常cool.如下图所示,在出错的页面每条栈新的右边都有一个按钮,点击之后我们可以执行Python代码,而且非常重要的一点是通 ...
- [Reomting Debug] 巧用VS 的remote debug 功能远程调试程序 经验分享.
前言: 有时候我们Dev(开发人员)需要debug tester(测试人员)或者customer(客户)的环境,可tester的机器上没有Code,是不是有点着急? 而且是多版本应用且tester 发 ...
- VS 开发工具中的Remote Debug 功能远程调试程序经验分享
前言: 有时候我们Dev(开发人员)需要debug tester(测试人员)或者customer(客户)的环境,可tester的机器上没有Code,是不是有点着急? 而且是多版本应用且tester 发 ...
- Dubbo 几个很实用但是很少人知道的功能
dubbo功能非常完善,很多时候我们不需要重复造轮子,下面列举一些你不一定知道,但是很好用的功能; 直连Provider 在开发及测试环境下,可能需要绕过注册中心,只测试指定服务提供者,这时候可能需要 ...
- Vivado Turtorial 01 —— 使用vivado中debug功能(类似ISE中ChipScope)
1.基于BASYS3板子,有如下代码: module top( input clk, input rst, output test_clk ); parameter DIV_CNT = 2; reg ...
- Yii2.0关闭自带的debug功能
1.找到相应模块的config文件夹的main-local.php文件注释相关代码,如下: 2.将web下面的两个入口文件改成false index.php index-test.php
随机推荐
- https Full Handshake
1)加密套件交互: 2)密码交换: 3)身份认证: Full Handshake Initially, client and server "agree upon" null en ...
- strcmp 与 _tcscmp
strcmp 用来比较ANSI字符串,而_tcscmp用来比较UNICODE(宽字符)的字符串.ANSI字符串中,1个英文字母为1个字节,1个中文字符为2个字节,遇到0字符表示字符串结束.而在UNIC ...
- CAD绘制一个半径标注(com接口VB语言)
主要用到函数说明: _DMxDrawX::DrawDimRadial 绘制一个半径标注.详细说明如下: 参数 说明 DOUBLE dCenterX 被标注的曲线的中点X值 DOUBLE dCenter ...
- Netty 长连接服务
转自:https://www.dozer.cc/2014/12/netty-long-connection.html 推送服务 还记得一年半前,做的一个项目需要用到 Android 推送服务.和 iO ...
- 洛谷——P2342 叠积木
P2342 叠积木 题目大意: 给你一堆积木,排成一行,初始时每对积木都只有一个,支持两种操作 第一种是移动操作,格式为“移动X到Y的上面”.X和Y代表两块积木的编号,意思是将X所的那堆积 ...
- 图的连通性问题之连通和最小环——Floyd算法
Floyd 判断连通性 d[i][j]仅表示i,j之间是否联通 ;k<=n;k++) ;i<=n;i++) ;j<=n;j++) dis[i][j]=dis[i][j]||(dis[ ...
- [luogu4728 HNOI2009] 双递增序列 (dp)
传送门 Solution 前几天刚做了类似题,这种将一个序列拆分为两个单调序列的题一般都是设\(dp[i]\)表示i为一个单调序列的末尾时,另一个序列的末尾是多少 然后应用贪心的思想,在这道题中就是让 ...
- 终端打印SQL语句
在 Django 项目的 settings.py 文件中配置: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handle ...
- (蓝桥)2017C/C++A组第一题迷宫
#include<iostream> #include<memory.h> using namespace std; char mi[10][10] ; int visited ...
- seminar information (Email template)
The following is an email example of seminar information **************** Dear all, It is a plea ...