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功能的更多相关文章

  1. IntelliJ IDEA 2020 的Debug功能也太好用了,真香!

    写在前边 作为一个有点强迫症的程序员来说,所有的应用软件.开发工具都必须要升级到最高版本,否则就会很难受到坐立不安.日思夜想.茶饭不思.至于什么时候得的这种病我也记不清了,哈哈哈 IntelliJ I ...

  2. JAVA基础学习之IP简述使用、反射、正则表达式操作、网络爬虫、可变参数、了解和入门注解的应用、使用Eclipse的Debug功能(7)

    1.IP简述使用//获取本地主机ip地址对象.InetAddress ip = InetAddress.getLocalHost();//获取其他主机的ip地址对象.ip = InetAddress. ...

  3. 云笔记项目-网页端debug功能学习

    在做云笔记项目的过程中,除了服务端在eclipse中debug调试代码外,有时候需要在浏览器端也需要进行debug调试,刘老师举了一个冒泡排序算法的dubug例子,进行了讲解. 首先上浏览器端测试代码 ...

  4. Flask的Debug功能非常酷

    Flask是一个Python开发框架.在试用的过程中发现它的debug功能非常cool.如下图所示,在出错的页面每条栈新的右边都有一个按钮,点击之后我们可以执行Python代码,而且非常重要的一点是通 ...

  5. [Reomting Debug] 巧用VS 的remote debug 功能远程调试程序 经验分享.

    前言: 有时候我们Dev(开发人员)需要debug tester(测试人员)或者customer(客户)的环境,可tester的机器上没有Code,是不是有点着急? 而且是多版本应用且tester 发 ...

  6. VS 开发工具中的Remote Debug 功能远程调试程序经验分享

    前言: 有时候我们Dev(开发人员)需要debug tester(测试人员)或者customer(客户)的环境,可tester的机器上没有Code,是不是有点着急? 而且是多版本应用且tester 发 ...

  7. Dubbo 几个很实用但是很少人知道的功能

    dubbo功能非常完善,很多时候我们不需要重复造轮子,下面列举一些你不一定知道,但是很好用的功能; 直连Provider 在开发及测试环境下,可能需要绕过注册中心,只测试指定服务提供者,这时候可能需要 ...

  8. Vivado Turtorial 01 —— 使用vivado中debug功能(类似ISE中ChipScope)

    1.基于BASYS3板子,有如下代码: module top( input clk, input rst, output test_clk ); parameter DIV_CNT = 2; reg ...

  9. Yii2.0关闭自带的debug功能

    1.找到相应模块的config文件夹的main-local.php文件注释相关代码,如下: 2.将web下面的两个入口文件改成false  index.php  index-test.php

随机推荐

  1. 表单enctype属性传值问题

    form表单的enctype设置为multipart/form-data后,表单中除了文件后台能拿到,其他值后台都拿不到. 知识点: 一.application/x-www-form-urlencod ...

  2. [API 开发管理] EOLINKER 升级为多产品架构, AMS V4.5 版本常见问题汇总

    自AMS4.5开始,eoLinker 全面升级为多产品架构,部分操作方式较以前有较大改变,本文针对改进部分做重点说明. 在说明之前,我们先通过以下的图文看看AMSV4.5更新了哪些内容: Q:我可以创 ...

  3. python numpy array 与matrix 乘方

    python numpy array 与matrix 乘方 编程语言 waitig 1年前 (2017-04-18) 1272℃ 百度已收录 0评论 数组array 的乘方(**为乘方运算符)是每个元 ...

  4. 洛谷——P2574 XOR的艺术

    P2574 XOR的艺术 很久之前就想挑战一下这道题了,线段树下传标记的入门题,跟区间加法下传标记类似. #include<bits/stdc++.h> #define N 1000005 ...

  5. Linux:在安装虚拟机时如何选择网络类型?

    如图所示工作站提供了5种网络模式,我们主要用的就是上面3种:桥接模式,NAT,仅主机 1,仅主机模式 仅主机模式:虚拟机用过vmnet1网卡与宿主机通信,但是不能与物理局域网内其他主机通信,可利用虚拟 ...

  6. =、==、is、id(内容)

    = 赋值 == 比较值是否相等 is 比较.比较的是内存地址 id(内容) 测出内存地址

  7. Marshal.ReleaseComObject() vs. Marshal.FinalReleaseComObject()

    很简单,不翻译了. If you are using COM components on your .NET code, you might be already aware of the Marsh ...

  8. GeoTrust 企业(OV)型 多域名(SAN/UC)版 SSL证书

     GeoTrust 企业(OV)型 多域名(SAN/UC)版 SSL证书(GeoTrust True BusinessID With Multi-Domain(SAN/UC) ),支持多域名,属于企业 ...

  9. SSL常用专业缩略语汇总

    JKS - Java KeyStore JAVA密钥库 OCSP - Online Certificate Status Protocol证书在线状态协议. SAN - Subject Alterna ...

  10. 【codeforces 766E】Mahmoud and a xor trip

    [题目链接]:http://codeforces.com/contest/766/problem/E [题意] 定义树上任意两点之间的距离为这条简单路径上经过的点; 那些点上的权值的所有异或; 求任意 ...