工作中使用IDEA进行调试的技巧

此IDEA调试是在IDEA社区版2022版本

行断点

设置断点

当前行的左侧,鼠标左键点击,出现红色的圆点,即断点,这是属于行断点
在这里插入图片描述

debug运行模式

在当前类,鼠标点击右键,出现菜单,然后选择Debug 'StringDemo.main()
在这里插入图片描述
或者点击工具栏,debug按钮
在这里插入图片描述
然后出现debug面板
在这里插入图片描述

常见操作

跳过当前所有断点

在这里插入图片描述

查看断点面板

在这里插入图片描述
在这里插入图片描述

断点挂起

打开断点配置面板,去除Suspend
在这里插入图片描述
然后原来断点从红色变成黄色,当前行断点是不生效的
在这里插入图片描述
debug模式下运行程序,会跳过断点处

方法断点

在方法这里的方法名左侧,使用鼠标左键点击,就会出现一个菱形断点。方法断点设置成功之后,程序运行的时候,会自动停在方法的第一行
在这里插入图片描述

接口方法设置断点

接口方法设置断点,debug模式下,执行接口的方法断点的时候,会自动跳到接口的实现类对应的方法中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

异常断点

打开断点配置面板
在这里插入图片描述
在这里插入图片描述

添加需要鉴定的异常断点

在这里插入图片描述
在这里插入图片描述
添加需要监控的异常,这里可以进行输入异常名称进行搜索,也可以输入自定义的异常名称
在这里插入图片描述
在这里插入图片描述
添加成功之后,程序在运行中出现了异常断点中指定的异常,就会停止继续执行。这里我监听的是空指针异常,程序在运行过程中遇到空指针异常,就会停止继续执行。

debug调试

在这里插入图片描述

字段断点

package com.demo;

public class StringDemo {

    public static void printPerson(){
        Person person = new Person("张三",12);
        System.out.println(person);
    }

    public static void main(String[] args) {
        printPerson();
    }
}

package com.demo;

public class Person {
    private String name;
    private int age;

    public Person(String name,int age){
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

设置字段断点

在这里插入图片描述

debug调试

debug模式运行StringDemo,程序会跳到字段值发生改变的地方
在这里插入图片描述
在这里插入图片描述

带条件的断点

在这里插入图片描述
在这里插入图片描述
然后点击Done按钮,条件表达式设置成功。debug运行之后,会在满足条件的断点处停顿,但是不影响程序的执行结果
在这里插入图片描述
在这里插入图片描述
运行结束,输出结果
在这里插入图片描述

表达式解析

在这里插入图片描述
在这里插入图片描述

断点触发打印信息

鼠标右键断点的地方
在这里插入图片描述
然后点击More(Ctrl+Shift+F8),打开以下界面
在这里插入图片描述
然后debug模式运行后,程序运行到指定断点,控制台就会打印信息
在这里插入图片描述
输出断点所在行的信息

打印堆栈信息

鼠标右键断点的地方
在这里插入图片描述
在这里插入图片描述
然后重新debug模式,控制台打印信息
在这里插入图片描述

工具栏

项目启动时,把参数传递进来

public class RuntimeParamTest {
    // 多个测试环境,很多配置用了一个魔术值
    // java -jar springboot-demo.jar -D
    // jenkins启动的时候,通过传递参数替换魔术值,从而多个环境一套配置
    // 本地调试,如何替换魔术值呢
    // 解决方法,idea运行时传参
    // 程序的参数
    public static void main(String[] args) {
        for (String arg : args) {
            System.out.println("program para = " + arg);
        }
        // VM options(jvm 参数)
        final String vmPara= System.getProperty("vmPara");
        System.out.println("vmPara = " + vmPara);
        // Environment variable(环境变量)
        final String envParam = System.getenv("envParam");
        System.out.println("envParam = " + envParam);
    }
}

配置程序的参数

参数是通过空格来进行分割的
在这里插入图片描述
在这里插入图片描述
然后运行程序,输出结果
在这里插入图片描述

配置jvm参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
jvm参数以-D为前缀,后面是参数名称=参数值
-DvmPara=123表示Jvm参数vmPara=123
在这里插入图片描述
运行程序,控制台输出
在这里插入图片描述

环境变量

是使用key=value的方式配置值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
程序执行之后,输出结果
在这里插入图片描述

好用的导航技巧

添加书签

在代码阅读的时候,使用书签来标记代码中重要的实现部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值