博客概要

     IDEA是一个强大的编译工具,Debug就是其中一个强大的功能,本博文就Debug做一些简单分享,也是备忘+总结~


文章目录

  • 博客概要
  • Debug介绍
  • Debug操作
  • 1.设置断点
  • 2.启动Debug
  • 3.Debug页面
  • 3.1测试按钮区
  • 3.2服务按钮区
  • 3.3方法调用栈区
  • 3.4变量区
  • 其他
  • 参考资料


Debug介绍

     是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。它可以用于逐指令执行某个程序以验证程序运行的正确性,也可以追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。

Debug操作

测试代码:

/**
 * Debug测试
 */
public class DebugTest {

    public static void main(String[] args) {

        int i = 10;
        i++;
        int j = count(i);
        System.out.println(j);
    }

    public static int count(int i) {

        int j = 1 + (i + 1);
        return j;
    }
}

1.设置断点

     在IDEA代码显示左侧,鼠标单击或快捷键"Ctrl+F8"打上/取消断点,即可设置相应位置断点。



idea debug走单个源码java文件 idea中debug_快捷键


2.启动Debug

     设置完成相应断点后,有多种方法启动Debug,看个人习惯,博主用的最多的还是方法二,鼠标点击右上角的“小虫子”来启动,快捷键还没记熟吧= =



idea debug走单个源码java文件 idea中debug_快捷键_02


3.Debug页面

     启动Debug后,会来到相应的IDEA Debug工作页面,按博主的理解,分为以下几个区域,接下来会逐个介绍:

1.测试按钮区
2.服务按钮区
3.方法调用栈区
4.变量区



idea debug走单个源码java文件 idea中debug_方法调用_03


3.1测试按钮区

     一共有8个按钮,调试的主要功能就对应着这几个按钮,鼠标悬停在按钮上可以查看对应的快捷键。在菜单栏Run里可以找到同样的对应的功能。



idea debug走单个源码java文件 idea中debug_调用栈_04



*1.“单步执行”:“F6”

idea debug走单个源码java文件 idea中debug_快捷键_05


每步执行数值都会有计算


idea debug走单个源码java文件 idea中debug_IDEA_06

idea debug走单个源码java文件 idea中debug_Debug_07

*2.“进入方法”:“F5”如果未设置断点,按"F6"的话,无法直接进入方法,只会一步步执行直至结束

idea debug走单个源码java文件 idea中debug_快捷键_08

要想进入方法,在执行到方法调用处时,应该按"F5",就能进入方法,执行完重新跳出方法

idea debug走单个源码java文件 idea中debug_调用栈_09

idea debug走单个源码java文件 idea中debug_调用栈_10

*3.“表达式计算”:“Ctrl+U”

idea debug走单个源码java文件 idea中debug_Debug_11


鼠标选中想要计算的方法表达式,"Ctrl+U"就会出现计算弹窗,点击"Evaluate"就会计算显示表达式结果


idea debug走单个源码java文件 idea中debug_调用栈_12

4.“强制步入”:“Alt+Shift+F7”

idea debug走单个源码java文件 idea中debug_快捷键_13


能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法


idea debug走单个源码java文件 idea中debug_快捷键_14

5.“步出”:“F7”(这里和"Shift+F8"区别,博主也还没弄清,有待勘正)

idea debug走单个源码java文件 idea中debug_方法调用_15


从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值


idea debug走单个源码java文件 idea中debug_IDEA_16

idea debug走单个源码java文件 idea中debug_快捷键_17

6.“运行至光标”:“Ctrl+R”

idea debug走单个源码java文件 idea中debug_方法调用_18


将光标定位到需要查看的行,然后使用这个功能,代码会运行至光标行,不需要打断点


idea debug走单个源码java文件 idea中debug_调用栈_19

idea debug走单个源码java文件 idea中debug_方法调用_20

7.“跳转至当前执行行”:“Alt+F10”

idea debug走单个源码java文件 idea中debug_快捷键_21


如果光标在其它行或页面,点击可跳转到当前代码执行行


idea debug走单个源码java文件 idea中debug_方法调用_22

idea debug走单个源码java文件 idea中debug_方法调用_23

8.“回退断点”回退到上一个方法调用的开始处

idea debug走单个源码java文件 idea中debug_Debug_24

3.2服务按钮区

     可以在这里关闭/启动服务,设置断点等。



idea debug走单个源码java文件 idea中debug_快捷键_25



1.“重新执行”:“Ctrl+F11”

idea debug走单个源码java文件 idea中debug_IDEA_26

*2.“断点跳跃”:“F8”

idea debug走单个源码java文件 idea中debug_调用栈_27


在设置断点跳跃,只会跳在设置断点的地方


idea debug走单个源码java文件 idea中debug_调用栈_28

idea debug走单个源码java文件 idea中debug_方法调用_29

3.“停止”:“Ctrl+F2”

idea debug走单个源码java文件 idea中debug_方法调用_30

4.“查看断点信息”:“Ctrl+Shift+F8”

idea debug走单个源码java文件 idea中debug_调用栈_31

5.“使断点失效”:“Ctrl+Shift+F8”

idea debug走单个源码java文件 idea中debug_Debug_32

3.3方法调用栈区

     这里显示了该线程调试所经过的所有方法,勾选右上角的[Show All Frames]按钮,就不会显示其它类库的方法了,否则这里会有一大堆的方法。



idea debug走单个源码java文件 idea中debug_方法调用_33



3.4变量区

     可以查看当前断点之前的当前方法内的变量。



idea debug走单个源码java文件 idea中debug_IDEA_34



其他

*1.“跳回方法调用处”:“Shift+F8”如果方法体很长,可以按"Shift+F8"直接跳回方法调用处

idea debug走单个源码java文件 idea中debug_IDEA_35

idea debug走单个源码java文件 idea中debug_调用栈_36

未完待续…