1.打断点

  IDEA 添加断点的方式还是比较简单的,我们可以直接在某一行的代码行号后点击鼠标左键进行添加

  

2.启动调试

  如果我们想要调试我们的程序,那我们必须以DEBUG的形式启动我们的程序,以DEBUG 的形式启动有很多种方式:

  1. 直接在要运行的类上面右键 --> Debug xxx

  

  2.点击代码前的绿色小三角 选择 DEBUG xxx

  

  3.点击工具栏上面的小虫子

  

  4.点击菜单栏的RUN --> DEBUG XXX

  

  还有其他很多种方式,这里就不再例举

3. 调试方法

  3.1 Step Over

     Step Over 单步执行:是指执行当前行代码,如果当前行代码是一个方法调用,则直接运行完这个方法,得到方法的返回值,而不会进入到这个方法。

      注意:这是不会进入到方法内部的,而是直接得到方法的返回值。

  3.2 Step Into

     Step Into 单步执行: 是指执行当前行代码,若当前行代码是一个方法调用,则进入该方法,然后继续单步执行。

      他与Step Over的区别就是,如果当前行是一个方法调用,Step Into 会进入到这个方法继续单步执行,而Step Over 则是直接将整个方法执行完。

     这里还有一点需要注意的就是,Step Into是不会进入到JDK实现的方法的,他只会进入到我们自定义的方法中。

  3.3 Force Step Into

    Force Step Into 也是单步执行,他与Step Into 类似。二者唯一的区别是:Step Into 不会进入到JDK实现的方法中,而Force Step Into 会进入到JDK实现的方法中。

    Force Step Into 会进入到任何方法中单步执行!!!

  3.4 Step Out

    Step Out 是跳出执行:它是指当我们在一个方法中调试时,如果觉得该方法在后面不会有任何问题或者不需要再调试该方法时,可以使用Step Out直接跳出该方法,返回到方法调用处。

    也就是说,我们可以在方法中使用Step Out 直接跳出该方法,继续回到调用该方法的地方进行调试。

  3.5 Run To Cursor

    Run To Cursor 是指运行到光标处,它可以使我们调试的程序从当前位置直接运行到我们光标所在的位置(就是用鼠标点一下以后一直在闪,可以输入的那个位置)然后等待下一步命令。

  3.6 Drop Frame

    Drop Frame 是指销毁当前方法的栈帧,回到上一级调用方法时的状态 ,等待下一步操作命令。注意:这里的返回是指销毁性返回,所有的变量的值和程序当前的环境都会被还原到调用该方法之前的状态。

4.其他一些常用的方法

  4.1 条件断点

     所谓条件断点,就是指当程序执行时,断点所在的位置满足断点指定的要求时,断点才会起作用 。

        例如下面这个第60行条件断点的意思就是,只有当 i  的值等于60的时候,断点才会起作用,否则断点无效。

      

    条件断点的设值方式:在断点上点击鼠标右键,会弹出一个小框框,我们可以在其中设值断点的很多属性,其中Condition 就是条件断点的条件。

    

  4.2 断点跨越

    所谓断点跨越就是从当前执行的行直接运行到下一个断点所在的位置。应用场景也很简单,比如我再这个断点附近调试完毕,所有结果都符合预期,那么在到达下一个断点之间很长  

   的一段代码可能不需要调试,那么这个时候我们就可以使用断点跨越直接到达下一个断点进行调试。

    使用方式,保证程序在下一个需要调试的断点之前,点击Resume Program

    

  4.3 查看变量值

    查看变量的值可以说是我们调试个过程中必不可少的要求了,IDEA允许我们查看变量的值:

    

  4.4 查看全部断点和跳过断点

      1. 跳过断点  Mute BreakPoints :

        在我们调试某一段代码时,如果本次想要放行全部断点(即不想调试本次),但是下一次还需要进行调试,则可以让断点暂时失效(断点静音),这是就使用到了跳过断点的操作。

        所谓跳过断点,其实就是使断点在本次执行中暂时保持静音状态,下次还能继续使用。

      

      2.查看全部断点:

        当我们打了很多断点的时候,如果想查看一下全部的断点,那么就可以使用查看全部断点的操作了

      

      打开以后是这样的:

      

5.补充

  这里给大家一个B站上讲解IDEA 调试的视频:

    B站断点调试视频

IDEA调试方法总结及各种Step的区别的更多相关文章

  1. 问题:PyCharm调试方法Force Step over与step over的区别

    Force Step over与step over的差别是,后者在执行到函数时,如果函数中设置了断点,会在该函数断点处暂停,等待进一步调试指令,而Force Step over不论函数中是否有断点,都 ...

  2. JavaScript常见调试方法

    编辑导语:javascript调试方法,常见使用alert和console来定位出错和输出的结果是否是想要的,在chrome中,还可以使用断点来看运行的情况等,本文介绍了比较全面的调试方法,你知道co ...

  3. GDB中应该知道的几个调试方法 来自陈皓

    GDB中应该知道的几个调试方法 2011年2月10日陈皓发表评论阅读评论62,325 人阅读   七.八年前写过一篇<用GDB调试程序>,于是,从那以后,很多朋友在MSN上以及给我发邮件询 ...

  4. [LED]如何配置LCD背光和LED,调试方法

    [DESCRIPTION] 如何配置LCD背光和LED,调试方法 [SOLUTION]LCD背光和LED配置文件alps/custom/<proj name>lk/cust_leds.ca ...

  5. matlab的调试方法

    • 常用的调试方法.• (1) 设置或清除断点:使用快捷键F12. • (2) 执行:使用快捷键F5.• (3) 单步执行:使用快捷键F10. • (4) step in:当遇见函数时,进入函数内部, ...

  6. Perl的调试方法

    来源: http://my.oschina.net/alphajay/blog/52172 http://www.cnblogs.com/baiyanhuang/archive/2009/11/09/ ...

  7. VxWorks操作系统shell命令与调试方法总结

    VxWorks下的调试手段 主要介绍在Tornado集成开发环境下的调试方法,和利用支撑定位问题的步骤.思路. 1         Tornado的调试工具 嵌入式实时操作系统VxWorks和集成开发 ...

  8. 【STM32H7教程】第7章 STM32H7下载和调试方法(IAR8)

    完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第7章   STM32H7下载和调试方法(IAR8) 本 ...

  9. 【STM32H7教程】第5章 STM32H7下载和调试方法(MDK5)

    完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第5章   STM32H7下载和调试方法(MDK5) 本 ...

随机推荐

  1. 属性成员是isXxx时对应的get方式是isXxx,前台jsp取不到这个属性值

    最近在项目中无意设置的boolean变量值为isXxx,用eclipse生成相应的set和get方法,eclipse生成的的boolean类型的get方法为isXxx,前台导致取不到相应的值 publ ...

  2. 【leetcode刷题笔记】LRU Cache

    Design and implement a data structure for Least Recently Used (LRU) cache. It should support the fol ...

  3. luogu1901 发射站

    单调栈 正着插一遍反着插一遍 记录每个点左边右边第一个比他高的... yyc太强辣 #include<iostream> #include<cstdlib> #include& ...

  4. bzoj 2733 永无乡 线段树

    题目: 支持两种操作: 合并两点所在的联通块 查询某点所在联通块内权值第k小. 题解 平衡树启发式合并随便搞一搞就好了. 我写了一个线段树合并 #include <cstdio> #inc ...

  5. Winform程序实现多显示屏、多屏幕显示的2种方法

    这篇文章主要介绍了Winform窗口实现多显示屏显示的2种方法,本文直接给出了实现代码,并对其中的一些重要参数做了解释,需要的朋友可以参考下. 一台主机连接了2台显示器(2个显卡),要求一个程序的两个 ...

  6. CSS:word-wrap/overflow/transition

    一 自动换行:一个div有固定宽高,如果其内容很长,必须两行以上才能显示完整的时候,有两种情况要留意 1 默认如果其内容都是中文,那么内容是可以自适应,而不会溢出div 2 如果内容除了中文之外,还有 ...

  7. 洛谷【P1104】生日(插入排序版)

    题目传送门:https://www.luogu.org/problemnew/show/P1104 题目很简单,我主要是来讲插入排序的. 所谓插入排序,就是从待排序数组不断将数据插入答案数组里. 假设 ...

  8. 【转】Pro Android学习笔记(二六):用户界面和控制(14):RelativeLayout

    相对布局:RelativeLayout RelativeLayout也是非常常用的布局,能够精确对控件的位置进行网格对齐,可以设置在控件与其他控件的相对位置,以及控件在容器中的位置.缺省控件的位置为最 ...

  9. 事务之五:Spring @Transactional工作原理

    本文将深入研究Spring的事务管理.主要介绍@Transactional在底层是如何工作的. JPA(Java Persistence API--java持久层)和事务管理 很重要的一点是JPA本身 ...

  10. pyodbc简单使用

    1.连接数据库 1)直接连接数据库和创建一个游标(cursor) cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABAS ...