• IDEA如何打断点调试


    编写代码的时候,有时候我们需要跟踪代码的运行情况,使用断点调试就是一个不错的方法,接下来介绍一下如何在IDEA中使用断点进行调试

    1. 设置断点

    直接在你需要打断点的代码的行号区域,点击,即可设置断点,如图所示
    在这里插入图片描述
    这里补充一下对断点的理解:断点打在代码的前面,例如11行的断点打在第11行代码的前面,意味着,当程序运行到11行代码的断点时,第11行代码其实并未运行

    2. 调试

    点击绿色的三角形进行运行程序,点击绿色的小瓢虫就是运行调试程序
    在这里插入图片描述

    程序就会进入调试界面,代码行处的断点标记,都变成了红色的箭头,蓝色的部分表示现在程序所停的行数
    最下面的就是调试窗口,调试窗口的左边部分是方法栈,即越下面的方法是越早被调用的,调试窗口的右边部分是变量的值
    在这里插入图片描述

    3. 调试的基本操作

    3.1 step over

    在这里插入图片描述
    在调试窗口的上方,含义为:进入下一步,如果当前行断点是一个方法,则不进入当前方法体内。即从代码行A,跳到下一行代码A + 1,并执行原来A行代码
    例如:
    现在执行到第12行代码(12行未执行),当前的map里只有一个元素,我们可以在下面的Variables中确认只有一个元素
    在这里插入图片描述
    当我们点击step over时:第12行内容被执行,map的size变为2,程序来到第13行
    在这里插入图片描述

    3.2 step into 跟 Force step into

    这两个都是表示:进入下一步,如果当前行断点是一个方法,则进入当前方法体内。但有一点区别,step into 只针对自定义的方法,如果对应的方法是官方库的方法,并不会进入方法体内。但Force step into,无论方法是什么方法,都会进入到方法体中
    举例:
    当执行到第15行,一个自定义的函数时:
    在这里插入图片描述
    使用 step into
    在这里插入图片描述
    则进入了该方法体内
    在这里插入图片描述
    但如果是这种官方库的方法,则无法进入:
    在这里插入图片描述
    此时,如果需要进入到方法体中,则需要使用Force step into:

    这里进入到hashmap中
    在这里插入图片描述

    3.3 step out

    跳出,即我们在方法体中运行时,不想继续一行一行的运行,想直接回到上一层的方法中,则使用step out跳出
    如刚才上面的调试,我们进入到hashmap中:
    在这里插入图片描述
    使用:step out 跳出
    在这里插入图片描述
    在这里插入图片描述

    3.4 resume program

    恢复程序运行,如果该断点下面代码还有断点则停在下一个断点上,即从一个断点跳到另一个断点
    在这里插入图片描述
    例如:程序调试到13行,点击Resume Program,直接运行到下一个断点15行处才停止
    在这里插入图片描述
    执行后:
    在这里插入图片描述

    3.5 mute breakpoints

    使得所有的断点失效 ,让所有断点失效,可以直接运行完剩余的程序
    在这里插入图片描述

    3.6 view breakpoints

    查看所有断点的信息
    在这里插入图片描述
    查询结果:你可以看到自己设置的所有断点的信息:
    在这里插入图片描述

    3.6 条件断点

    对断点是否停止进行条件判断,在断点处右键即可设置:
    在这里插入图片描述
    例如,如果我们这样子设置断点的话,我们调试的过程中,这段代码会停下来100次,如果我只想它在大于90的时候停止呢?
    在这里插入图片描述
    我们可以这样子,设置条件断点:
    在这里插入图片描述
    设置之后,断点处会加上“?”
    在这里插入图片描述
    进行调试时,停下的时候:
    在这里插入图片描述

     
     
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/Applying/article/details/82925061
  • 相关阅读:
    配置sonar、jenkins进行持续审查
    maven命令解释
    Maven中-DskipTests和-Dmaven.test.skip=true的区别
    maven之一:maven安装和eclipse集成
    Eclipse安装Maven插件
    IntelliJ IDEA单元测试和代码覆盖率图解
    关于Spring中的<context:annotation-config/>配置
    Java开发之@PostConstruct和@PreConstruct注解
    Java定时任务的三种实现方法
    JAVA之Mybatis基础入门二 -- 新增、更新、删除
  • 原文地址:https://www.cnblogs.com/gen2122/p/15016013.html
Copyright © 2020-2023  润新知