目录

  • 1.打断点,并启动
  • 2.按钮介绍
    • 1.测试程序
    • 2.Step Over
    • 3.Step Into
    • 4.Force Step Into
    • 5.Step Out
    • 6.Drop Frame
    • 7.Run to Cursor
    • 8.Evaluate Expression
    • 9.Resume Program
    • 10.Stop
    • 11.View BreakPoints
    • 12.Mute BreakPoints
  • 3.断点分类
    • 1.方法断点
    • 2.属性断点
    • 3.异常断点
    • 4.条件断点
    • 5.流断点
    • 6.多线程断点

1.打断点,并启动

打断点:

鼠标左键点击这里就会出现一个红点标志 (有各种形状,后续解释),就打上了一个断点。

启动:

  • 对于已经运行过的程序,直接点击,小虫子就能启动
  • 对于没有运行过的程序,找到程序入口(main方法)前面的三角形 ,鼠标右键启动

启动后,当我们的程序执行到断点程序处,就会出现调试界面,如下:

如果没有出现调试界面,那就是说明:根本没有执行断点处的程序。

2.按钮介绍

1.测试程序

先写一个简单的类来做测试,如下:

public class TestDemo {public static int add(int a, String b) {int c = Integer.parseInt(b);return a + c;}public static char sub(int d, int e) {char res = (char) Math.abs(d - e);return res;}public static void main(String[] args) {String b = "45";int a = 13;int sum = add(a, b);int d = 17;int e = 89;char f = sub(17, 89);}
}

接着,找个地方打上断点(确保程序会执行的地方)打上断点:

然后开始debug。

2.Step Over

步过:

作用:

  • 一行代码一行代码地往下执行
  • 不会进入到路经的方法里面

3.Step Into

步入:

作用:

  • 进入我们自定义的方法
  • 不会进入其他类库的方法

4.Force Step Into

强制步入:

作用:

  • 可以进入更深层次的方法
  • 自定义类库或者其他类库的方法都能进入

5.Step Out

步出:

作用:

  • 从对应的方法中出来,返回上一层

6.Drop Frame

回退断点:

作用:

  • 当进入到更深层的方法后才能使用
  • 当我们错过了debug的位置时使用
  • 这个按钮可以让焦点回到调用方法之前,然后再次debug一次方法(给你犯错重来的机会)
  • 对于数据库增删改操作无法回退

注意: 此回退仅限于,那个方法还没有调用完,否则是无法回去的再次debug那个方法的,只能重新启动debug。

7.Run to Cursor

跳到光标处

作用:

  • 将debug执行位置跳转到光标位置,然后继续debug
  • 只能往后面跳,如果光标在debug执行位置前面,就会终止debug

8.Evaluate Expression

表达式计算:

作用:

  • 获取已经debug过的参数的值
  • 计算已经debug过的参数的值(表达式、方法)

9.Resume Program

恢复程序:

作用:

  • 当有多个断点时使用
  • 直接跳转到下一个断点的位置

10.Stop

停止程序:

作用:

  • 停止debug
  • 会继续跑完程序

11.View BreakPoints

查看断点:

作用:

  • 查看所有断点,并进行相关设置

12.Mute BreakPoints

禁用断点:

作用:

  • 暂时禁用掉所有断点,放行程序

3.断点分类

1.方法断点

给方法打上断点之后,当我们的debug到调用该方法的位置的时候,会直接跳转到方法处(直接Step Out就会跳转)。

2.属性断点

断点右键可以进行设置:

3.异常断点

添加异常断点流程:

作用:

  • 在全局打上异常(上述添加的是堆栈溢出异常)
  • 只要哪里出现了堆栈溢出异常,程序就会跳转到那个地方,方便快速找到异常位置
  • 可在run程序抛出异常后,根据异常去打断点,然后进行调试

4.条件断点

右键断点,设置条件,只有当满足条件时,才会进入该断点程序停留,否则就直接往下面执行程序。

5.流断点

调试流程:

  • 代码:

        public static void main(String[] args) {Stream.of(10, 30, 50, 90, 40).mapToLong(e -> e*e ).filter(e -> e > 2500).forEach(System.out::println);}
    
  • 断点调试:

作用:

  • 可以查看流的工作流程

6.多线程断点

调试流程:

  • 代码:

        public static void main(String[] args) {new Thread(() -> {System.out.println();System.out.println("thread1 is running");StringBuilder sb = new StringBuilder(".");for (int i = 0; i < 10; i++) {try {Thread.sleep(100);System.out.print(sb.append(".").toString());} catch (InterruptedException e) {e.printStackTrace();}}}, "thread1").start();new Thread(() -> {System.out.println();System.out.println("thread22 is running");StringBuilder sb = new StringBuilder(".");for (int i = 0; i < 10; i++) {try {Thread.sleep(100);System.out.print(sb.append(".").toString());} catch (InterruptedException e) {e.printStackTrace();}}}, "thread22").start();new Thread(() -> {System.out.println();System.out.println("thread333 is running");StringBuilder sb = new StringBuilder(".");for (int i = 0; i < 10; i++) {try {Thread.sleep(100);System.out.print(sb.append(".").toString());} catch (InterruptedException e) {e.printStackTrace();}}}, "thread333").start();}
    
  • 断点:

  • 查看输出:

作用:

  • suspend 设置为 Thread
  • 这样就可以单个线程单个线程地调试,而不会出现,线程之间争抢资源的情况(线程不断切换)

Idea断点调试(debug)详解相关推荐

  1. Windbg调试命令详解

    Windbg调试命令详解 发表于2013 年 8 月 23 日 转载注明>> [作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Win ...

  2. Visual Studio Code (VSCode) 之 C/C++ 调试配置详解

    准备   默认情况下,VSCode仅仅内置了对node.js运行时的调试支持,只可以直接调试JavaScript.TypeScript和任何其他翻译为JavaScript的语言.其他语言的调试支持,都 ...

  3. php和js调试,JS调试使用详解

    这次给大家带来JS调试使用详解,JS调试的注意事项有哪些,下面就是实战案例,一起来看一下. 试想一下:出现了某个bug,有人用几分钟就搞定了,有人用了半天或者一天都找不到原因所在.你愿意当前者还是后者 ...

  4. 断点调试 debug模式 1006

    断点调试 debug模式 1006 打断点 在需要监视的位置打断点 调试 F5可以开启调试 或者 调试>启动调试 视频 演练调试模式 c sharp 1006 - 西瓜视频 https://ww ...

  5. F12调试调试窗口详解

    目录 前言 一.F12调试参数详解 1.Elements: 2.Network: Name: headers: Preview: Response: Timing: 3.console: 4.Sour ...

  6. 电路板选择、焊接和调试技巧详解(7)

    原文地址::http://www.360doc.com/content/13/0513/17/11723777_285167796.shtml 相关文章 1.电路板选择.焊接和调试技巧详解(2)--- ...

  7. Eclipse 断点调试(Debug), 使用方法

    1.问题:Java学习中,使用Eclipse时,会遇到各种各样的问题,对内部底层的运行,或运行顺序不同,会导致不能真正理解,灵活运用. 使用debug断点调试,可以完成,程序每一步一步是怎么样运行的, ...

  8. oracle中调试存储过程,详解Oracle调试存储过程

    详解Oracle调试存储过程 一 调试关键步骤 1.在要调试的存储过程右键,选择编辑以进行调试,截图如下: 2.点击小瓢虫,弹出调试窗口,截图如下: 3.输入7839员工编号,点击确认,进行调试,截图 ...

  9. 这可能是最详细的 Windows Debug 详解 了

    Debug概览 Debug是什么? debug是Windows 16位或者32位机器上的一款调试工具.也就是说,在WindowsXP及以前的机器上都有debug,直接Win+X debug就可以调出: ...

  10. VScode调试Linux详解

    在Linux上通常使用gdb命令行调试,但该方式调试不太直观,且命令行长时间不用,容易忘记,不如GUI直观和容易上手,下面介绍基于GUI的方式调试Linux. 一.Linux调试GUI方案简介 1)  ...

最新文章

  1. python查找文件夹下的文件,python 查找文件夹下所有文件 实现代码 -电脑资料
  2. 在IntelliJ IDEA中使用git
  3. asp.net中让GridView加上垂直流动条并让标头不动
  4. Mybatis核心配置文件xml详解
  5. python教程程序_Python如何发布程序的详细教程
  6. 方法引用、构造器引用和数组引用
  7. 【百度地图API】如何激发手机的高分辨率
  8. continue 与break 的区别
  9. 1年内从2000涨到13000的成长经验分享
  10. Java EE 6权威指南:第4版.基础篇
  11. Linux 磁盘无损扩容
  12. 锐捷校园网:小米mini路由刷Padavan固件实现wifi上网
  13. 今天你对我爱搭不理, 明天我让你高攀不起
  14. Linux系统的应用软件流程图绘制软件yEd
  15. SyntaxError: invalid character in identifier
  16. 前端开发最基本的3个语言
  17. 帝国CMS对接百度智能小程序的方法
  18. 元素布局之排排坐、对齐齐
  19. 用户账号管理和组管理
  20. Flink 1.10 版本之前如何生成 Watermark

热门文章

  1. CVTE 2018年暑期 嵌入式应用开发实习生 面试经历
  2. CAJ文件怎么转换成Word文档?这2种方法值得学习
  3. HTML自定义滚动条(仿网易邮箱滚动条)
  4. 传说中的5G iPhone真的来了?!
  5. 微信公众号点击菜单出现多条文章
  6. 计算机专业可以买天选吗,计算机专业买什么本 就选搭载GeForce RTX显卡的天选
  7. 首页广告(轮播图+京东秒杀+最底部的为你推荐)
  8. 网站测速服务 查看自己网站在全球的打开速度
  9. python前景怎么样-Python在中国的发展前景怎么样?有哪些就业方向?
  10. c++多线程简单实现