学会使用IDEA断点调试工具

IDEA断点调试

在断点调试的过程中始终是运行状态,在某一行设置一个断点之后就会停止在此处。从而发现问题的所在。俗称Debug

断点调试快捷键

  • F7(跳入方法内)
  • F8(跳过—逐步执行代码)
  • shift+F8(跳出方法)
  • F9(逐步执行代码Resume)

断点调试案例

案例一循环执行

package com.dzu.cn;

/**
 * @Author ChenRuXu
 * @Date 2022/2/14 22:23
 * @Version 1.0
 */
public class Debug01 {
    public static void main(String[] args) {
        //演示逐行执行
        int sum=0;
        for (int i=0;i<5;i++){
            sum+=i;
            System.out.println("i="+i);
            System.out.println("sum="+sum);
        }
        System.out.println("退出for");
    }
}

在需要的行处点击鼠标左键之后执行断点调试。
断点调试案例1
执行断点调试之后出现下面的页面
注意:F9 Resume可以动态的添加断点执行过程中依然生效
在这里插入图片描述
F8 step over跳过逐步执行
在这里插入图片描述
F7 step into跳入方法内
在这里插入图片描述
force step into 强制进入方法体内
在这里插入图片描述
在这里插入图片描述
此时F7程序的执行过程和变量的变化我们可以一清二楚。
在这里插入图片描述

案例二:数组越界执行异常

package com.dzu.cn;

/**
 * @Author ChenRuXu
 * @Date 2022/2/14 22:48
 * @Version 1.0
 */
public class Debug02 {
    public static void main(String[] args) {
       int[] arr ={1,10,-1};
        for (int i = 0; i <=arr.length ; i++) {
            System.out.println(arr[i]);
        }
        System.out.println("退出for循环");
    }
}

在这里插入图片描述

案例三追踪源码

观察Arrays.sort(arr)是如何排序的

package com.dzu.cn;

import java.util.Arrays;

/**
 * @Author ChenRuXu
 * @Date 2022/2/14 22:56
 * @Version 1.0
 */
public class Dubug03 {
    public static void main(String[] args) {
        int arr[] ={1,-1,10,-20,100};
        Arrays.sort(arr);
        for ( int i= 0;i<arr.length;i++){
            System.out.print(arr[i]+"\t");
        }
    }
}

学习使用断点调试过程中的F7跳入到方法体内

在这里插入图片描述
使用F7之后我们发现并没有进入源码之中。下面是我们的解决方法。

方法一:force step into 使用强制执行来进入

方法二采用配置的方法来实现

在设置中找到断点调试的选项。

在这里插入图片描述

将其中的 java.* ,javax.*取消勾选。

默认的情况下不允许进入源码

在这个时候我们就可以使用dubug来进入源码调试了。
在这里插入图片描述
在这个基础上我们如果在使用F7会继续进入。
在这里插入图片描述

在这里插入图片描述

这里才是我们真正执行排序方法(双轴快排)

在进入这个最终的源码之后,思考如何退出到主方法呢

先跳出到之前的方法 需要我们去使用shift+F8(跳出方法)跳到调用排序的地方在逐步返回到主方法

在这里插入图片描述

案例四:F9 resume与动态下断点

idea支持在运行的过程之中来动态的下断点

package com.dzu.cn;

import java.util.Arrays;

/**
 * @Author ChenRuXu
 * @Date 2022/2/14 22:56
 * @Version 1.0
 */
public class Dubug03 {
    public static void main(String[] args) {
        int arr[] ={1,-1,10,-20,100};
        Arrays.sort(arr);
        for ( int i= 0;i<arr.length;i++){
            System.out.print(arr[i]+"\t");
        }

        System.out.println(1);
        System.out.println(2);
        System.out.println(3);
        System.out.println(4);

    }
}

在这里插入图片描述
使用F9直接会到第二个断点的位置处。然后我们动态的加一个断点。

此时在点击F9就会到动态加入断点的位置处
在这里插入图片描述

总结

使用断点调试是,我们日后排错与学习源码进行分析的时候一项必不可少的内容之一。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序小旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值