【工具使用】IDEA 中 使用 Debug

单线程 Debug




01_Debug


  • 什么是Debug

    • Debug 程序调试
    • 开发:调试 = 1 : 1.5
  • Debug能帮我们做什么

    • 追踪代码运行流程
    • 异常的定位与调试
    • 线上问题追踪
  • Debug的意义

    • 熟悉执行流程
    • 方便理解复杂程序逻辑
    • 定位问题 提高解决问题的能力



02_Idea中的Debug


  • 设置断点(F9)
  • 程序调试(按钮x8)
按钮 快捷方式 说明
Alt+F10 如果光标在其他行或者其他页面,点击按钮调到当前代码执行的行。
F8 步过,一步一步往下走,如果这一行上有方法不会进入方法。
F7 步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方库方法。
Alt + Shift + F7 强制步入,能进入任何方法,查看底层源码的时候可以用此方法进入官方类库。
Shift + F8 不出,从步入的方法内退回到方法调用处,此时方法已经执行完毕,只是还没有完成赋值。
回退断点。
Alt + F9 运行到光标处,可以将光标定位到需要查看的一行,然后使用这一功能,代码会运行至光标行,而不需要打断点。
Alt + F8 计算表达式。
  • 03_Debug 的使用
    • 设置断点
    • 进入Debug



代码实例


    • 步过 跳过本行中的方法单行执行
    • 步入 进入本行中的方法,但不进入官方库方法
    • 强制步入 进入方法,包括官方类库
    • 步出 在步入一个方法后,不执行结束则不会退出该方法,使用步出则可以直接结束该方法,调到该方法的调用处
 	public void a(){
       >System.out.println("---程序执行开始");
       >int c = add(1,2);
        System.out.println("---程序执行结束");
    }

	public int add(int a,int b){
        return a+b;
    }

步过:在 2 号断点,步过 不会进入add方法而直接获得 add方法的返回值;

步入:在 2 号断点,步入 会进入 add 方法,并一步一步执行,但是在 1 号断点,步入 不会进入 print 方法

强制步入:在 1 号断点,强制步入会进入 print 方法;

步出:在 进入 add 方法后,如果不想看后面的代码,可以使用步出,直接回到 a 方法;


  • 回退 & 运行到光标
    • 回退:当 步入一个方法体之后,使用回退可以回到该方法的调用处,进而可以重新执行步入等调试(而不用重启Debug);
    • 运行到光标:不用频繁设置断点,光标指到哪里,就运行到哪里;

  • 计算表达式
  • 查看变量的几种方式
    • 1、 Debug 的 Variables
    • 2、 光标放在方法的 形参上面,然后点击 +号
    • 3、 使用计算表达式功能,输入user,就可以显示用户变量,并且可以修改用户变量值
    • 修改方法:直接输入user.setUserTyp=("员工");点击回车

public static void main(String[] args){
    User user = new User("张三","123456","超级管理员");
    login(user);
}

public static void login(User user){
    switch(user.userType){
        case "超级管理员":
            sout("是超级管理员");
    }
}

//User 类
@Data
public class User(){
    String username;
    String password;
    String userType;
}
    

  • 条件断点
  • 使用条件:循环300次的断点,需要连点 300 次 步过;
  • 使用方式:在断点处 右击,在Condititon中输入 i == 300;



多线程 Debug


原文地址:https://www.cnblogs.com/hskcool/p/14223477.html