IDEA断点调试(debug)

news/2024/7/16 7:27:36 标签: java, ide, 经验分享, 其他

目录

1.断点调试介绍

2.F8逐行执行代码

3.调试遇异常

4.调试时如何看源码

5.如何直接执行到下一个断点 F9

6.利用断点调试查看动态绑定机制


1.断点调试介绍

断点调试是指在程序的某一行设置一个断点,调试时,程序运行到这一 行就会停住,然后你可以一步步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。进行分析从而找到这个Bug。

在断点调试过程中,是运行状态,是以对象的运行类型来执行的.

断点调试是程序员必须掌握的技能,能帮助我们查看java底层源代码的执行过程,提高程序员的Java水平。

断点调试常用快捷键
F7:跳入方法内 
F8: 逐行执行代码 .(重点分析)
shift+F8: 跳出方法

2.F8逐行执行代码

代码(2-1)

java">public class Text1 {
    public static void main(String[] args) {
        int sum=0;
        for (int i = 1; i <= 10; i++) {
            sum+=i;
        }
        System.out.println(sum);
    }
}

演示: 

ideo-box">

F8逐行执行代码


3.调试遇异常

以数组越界的异常
代码(3-1)
java">public class Text {
    public static void main(String[] args) {
        int[] arr={1,2,3};
        for (int i = 0; i <= arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

演示: 

ideo-box">

数组越界的异常


4.调试时如何看源码

使用 F7:跳入方法内 是看不到 源码的。想要看到源码我这提供两种方法。
方法1:
使用快捷键:alt+shift+F7;
方法2:

 配置:Setting- >Build,Execution,Deployment- >Debugger- >Stepping,把Do not step into the classes 中的java.*,javax.*取消勾选,其他随意。

ideo-box">

如何调试看源码配置

java">  public static void main(String[] args) {
        int[] arr={0,-1,100,6,7};
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }

代码(4-1) 

演示 看源码
ideo-box">

看源代码演示

不想看了 shift+F8: 跳出方法

5.如何直接执行到下一个断点 F9

代码(5-1)

java"> public static void main(String[] args) {
        int[] arr={0,-1,100,6,7};
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }

        System.out.println("a");
        System.out.println("b");
        System.out.println("c");
        System.out.println("e");
        System.out.println("f");
        System.out.println("g");
        System.out.println("h");
    }

演示:

ideo-box">

如何直接执行到下一个断点


6.利用断点调试查看动态绑定机制

代码(6-1)

java">public class Text {
    public static void main(String[] args) {
        A a=new B();
        a.a();
    }
}

class A{
    public void a(){
        ab();
    }
    public void ab(){
        System.out.println("class A的方法");
    }
}

class B extends A{
  public void ab(){
      System.out.println("class B的方法");
  }
}

演示:

ideo-box">

利用断点调试查看动态绑定机制


以上为我个人的小分享,如有问题,欢迎讨论!!! 

都看到这了,不如关注一下,给个免费的赞 

 


http://www.niftyadmin.cn/n/4936423.html

相关文章

Unity2D RPG开发笔记 P1 - Unity界面基础操作和知识

文章目录 工具选择简单快捷键Game 窗口分辨率检视器Transform 组件Sprite Renderer综合检视器 工具选择 按下 QWERTY 可以选择不同的工具进行 旋转、定位、缩放 简单快捷键 按下 Ctrl D 可以复制物体 Game 窗口分辨率 16:9 为最常见的分辨率 检视器 Transform 组件 物体在…

boost::filesystem遇到的坑

1. 曾遇到C14不支持std::filesystem, 尝试在cmake里增加同时对C17的支持&#xff0c;未成功&#xff0c;最后将std::filesystem改为boost::filesystem即可。 2. 文件夹路径被一个进程正在访问和写入&#xff0c;再起一个进程删除话程序就会闪退&#xff0c;解决办法就是增加try…

AI Chat 设计模式:14. 适配器模式

本文是该系列的第十四篇&#xff0c;采用问答式的方式展开&#xff0c;问题由我提出&#xff0c;答案由 Chat AI 作出&#xff0c;灰色背景的文字则主要是我的一些思考和补充。 问题列表 Q.1 关于适配器模式&#xff0c;如果由浅入深的来考察&#xff0c;你会依次提出什么问题…

LeetCode 2813. Maximum Elegance of a K-Length Subsequence【反悔贪心】2582

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

AWS asg(Auto Scaling Group)部署时报错Error: Termination Reason: Client.InternalError

背景 最近用一个terraform asg模块部署asg时一直报错 Error: Termination Reason: Client.InternalError: Client error on launch 搜索资料发现和KMS下面的asg 对应的policy有关系. 解决方法 在AWS界面找到KMS, 然后找到customer managed key导航栏, 最后找到对应AMI加密用…

【JavaEE进阶】Spring 更简单的读取和存储对象

文章目录 一. 存储Bean对象1. 配置扫描路径2. 添加注解存储 Bean 对象2.1 使用五大类注解存储Bean2.2 为什么要有五大类注解&#xff1f;2.3 有关获取Bean参数的命名规则 3. 使用方法注解储存 Bean 对象3.1 方法注解储存对象的用法3.2 Bean的重命名3.3 同⼀类型多个 Bean 报错 …

自动化安装系统—PXE(一)

系统安装过程 加载boot loader加载启动安装菜单加载内核和initrd文件加载根系统运行anaconda的安装向导 安装光盘中与安装相关的文件 安装autofs启动后会自动出现/misc目录。 在虚拟机设置中添加CD/DVD&#xff0c;使用系统ISO文件&#xff0c;登录系统后mount /dev/cdrom …

[FPGA IP系列] 2分钟了解FPGA中的BRAM

FPGA设计中&#xff0c;BRAM是一项非常关键的内置存储资源&#xff0c;FPGA开发需要熟练使用BRAM&#xff0c;今天再复习一下BRAM的知识&#xff0c;包括BRAM的定义、组成、应用等等。 一、BRAM介绍 1、BRAM的定义 RAM是Random Access Memory&#xff0c;也就是随机访问数据…