Debug断点调试功能

文章目录

  • Debug断点调试功能
    • 一、断点简介
    • 二、Debug控制面板
    • 三、Debug按钮的使用
      • 1. 跳转到当前Debug所在行
      • 2. 步过
      • 3. 步入
      • 4. 强制步入
      • 5. 步出
      • 6. 回退断点
      • 7. 运行到光标处
      • 8. 计算表达式
      • 9. 其余按钮介绍
    • 四、Debug其他功能
      • 1. 查看某一变量的值
      • 2. 条件断点
      • 3. 多线程调试
      • 4. 强制方法返回
    • 五、断点分类
      • 1. 行断点
      • 2. 详细断点(源断点)
      • 3. 方法断点
        • 3.1 作用一
        • 3.2 作用二
      • 4. 异常断点
      • 5. 字段断点
    • 六、JDK1.8 Stream调试

一、断点简介

  • 程序运行过程中执行到断点,程序就会暂停在断点的代码处,不会自动继续向下运行,可以根据程序员的指令分析之后的代码流程

  • 在代码行的最前面单击即可设置断点

    首先讲述行断点,所以此时的断点应该打在方法体内部的代码行上,而不是方法的声明处

  • 以Debug模式启动程序即可开启断点调试

  • 可以同时设置多个断点

二、Debug控制面板

  • 以Debug模式启动程序之后自动弹出Debug控制面板:

  • 控制面板的基本介绍

三、Debug按钮的使用

对Debug按钮的整体介绍:(后面会逐一详解)

按钮 说明
(Alt + F10):如果处于其他代码行或页面,点击这个按钮可回到此时Debug正在执行的代码行
(F8):步过,代码逐行向下执行,如果这一行上有方法则自动执行方法不会进入方法内部
(F7):步入,如果当前行有方法,可以进入方法内部;一般用于进入自定义方法内,不会进入官方类库的方法体
(Alt + Shift + F7):强制步入,能进入任何方法体,包括自定义方法和类库方法
(Shift + F8):步出,自动执行完此方法体内的剩余代码并从方法体内部退出到方法调用处的下一代码行,表示此方法已执行完
(无快捷键) 回退断点,退出方法体至方法调用处,此方法不会执行完,可以再次进入此方法
(Alt + F9):运行到光标处,无需打断点,将光标定在某一代码行,点击此按钮直接执行到此代码行
(Alt + F8):计算表达式,可以解析指定的表达式(语句),并执行此表达式

1. 跳转到当前Debug所在行

  • 对应的调试按钮(Alt + F10)

  • 作用

    • 如果处于其他代码行或页面,点击这个按钮可回到此时Debug正在执行的代码行
  • 使用步骤

2. 步过

  • 步过调试按钮(F8)

  • 作用

    • 代码逐行向下执行,如果这一行上有方法则自动执行方法不会进入方法内部
  • 使用步骤

  • 注意:断点执行过程中所执行到的行(比如上图有蓝色条框的代码行),表示的是此代码行还没有被执行,由编程人员选择进入此方法还是步过此方法

3. 步入

  • 步入调试按钮(F7)

  • 作用

    • 如果当前行有方法,可以进入方法内部;一般用于进入自定义方法内,不会进入官方类库的方法体
  • 使用步骤

4. 强制步入

  • 强制步入调试按钮(Alt + Shift + F7)

  • 作用

    • 能进入任何方法体,包括自定义方法和类库方法
  • 使用步骤

5. 步出

  • 步出调试按钮(Shift + F8)

  • 作用

    • 自动执行完此方法体内的剩余代码并从方法体内部退出到方法调用处的下一代码行,表示此方法已执行完
  • 使用步骤

6. 回退断点

  • 回退断点调试按钮

  • 作用

    • 退出方法体至方法调用处,此方法不会执行完,可以再次进入此方法
    • 与步出的区别
      • 步出会执行完此方法然后退出,不可再次进入此方法(如果想再次进入方法必须重新Debug)
      • 回退不会执行完此方法,而是退回到方法的调用处,还可再次进入此方法
  • 使用步骤

7. 运行到光标处

  • 运行到光标处按钮 (F9)

  • 作用

    • 无需打断点,将光标定在某一代码行,点击此按钮直接执行到此代码行
  • 使用步骤

8. 计算表达式

  • 计算表达式按钮(Alt + F8)

  • 作用

    • 解析表达式,执行表达式的代码

      • 无需修改代码,可以临时修改参数的值
      • 获取指定表达式的值
  • 使用步骤

    如果想要测试董事长,则点击计算表达式按钮临时修改参数值:

    表达式修改为get方法,即可得到此对象的值

    计算表达式的功能并不单单限于以上两种方式,可以解析任何表达式,只要符合Java语法即可

9. 其余按钮介绍

9.1 重启这次Debug

9.2 程序向下运行,直到下一个断点才停下来,如果没有断点,则整个程序会直接执行完毕

9.3 进入断点的管理面板(View BreakPoints)

启动Debug调试:

9.4 临时禁用所有断点

9.5 停止Debug过程

注意:在方法内部停止了程序,此方法不会中断,只有执行完此方法程序才会停止(进入了方法中只有执行完方法才可以出去)

四、Debug其他功能

1. 查看某一变量的值

输入所要查看的变量:

变量的值将会显示在面板上:

2. 条件断点

  • 条件断点简介

    • 当条件满足时此断点才会生效
  • 使用步骤

    让程序继续运行,直至条件满足才进入断点:

3. 多线程调试

  • 概念

    • 断点右键

    • 如果为ALL的话,则所有线程都会显示在面板上,同时控制所有线程,不利于观察一个线程的执行过程

    • 如果为Thread的话,只会显示一个线程的断点调试过程

      • 所有的线程都会执行到断点处停止,只不过是只能控制其中一个线程,想要控制其他线程必须切换线程
  • 使用步骤

    在面板可以切换要显示的线程以及显示各线程的状态:

4. 强制方法返回

  • 概念

    • 当方法执行到一半时(比如出现了异常),不想继续执行此方法(此方法中剩余的代码都不执行),直接退回至调用处的下一行
  • 使用步骤

五、断点分类

1. 行断点

  • 上述讲述的就是行断点,断点打在方法体内,而不是方法的声明处

2. 详细断点(源断点)

  • 使用 shift + 鼠标左键,断点打在方法体内,而不是方法的声明处

3. 方法断点

3.1 作用一

  • 会自动的在进入方法或者离开方法时设置断点(不可见的两个断点),可以直接从方法的第一行执行到方法的最后一行,方便观察方法体内的参数、变量的初始值和最终值,而不关心变化过程

  • 在方法的声明处打断点

  • 进入Breakpoints中,设置断点在进入方法时还是离开方法时

3.2 作用二

  • 自动的跳转到方法的实现类

    • 为接口中的方法添加方法断点

    • 没有在实现类中添加任何断点

    • 方法的调用处也没有添加任何断点

    • 以Debug方式启动程序

    • 使用场景:接口的实现类有很多个,不知道是执行哪一个实现类的方法时,可以在接口的方法打一个方法断点,会自动的跳转到对应的实现类的方法

4. 异常断点

  • 无需显示设置异常断点的位置,程序会自动的在产生指定异常的位置停止下来

  • 使用步骤

    • 首先进入断点的管理面板(BreakPoints),添加异常断点

    • 以Debug方式启动程序,会自动的在产生异常的位置停顿

5. 字段断点

  • 监控某一字段(属性)在整个程序中执行的流程

    • 会自动的在此属性值被读取或者被修改的位置停顿下来,每有一次读取或值变化就会停顿一次
  • 在字段所在的代码行添加字段断点

  • 进入Breakpoints中,设置程序停顿的条件

  • 以Debug方式启动程序

六、JDK1.8 Stream调试

Debug断点调试详解相关推荐

  1. JS实用技巧之断点调试详解

    引言 调试能力是一个程序员的生存根本,可是很多初学者却忽视调试.今天我们就来讨究一下JS的调试技巧. 本文章将会详细列举JS相关的各种实用调试技巧.如果您是JS的初学者,那么这篇文章将对您有很大的帮助 ...

  2. eclipse调试详解

    eclipse调试详解 作者: 高州人家 来源: 网络转载 浏览: 1610 次 好评: 0分 [ 小 中 大 ] 2007-11-16 本地调试     Java   调试器具有客户机/服务器设计, ...

  3. Linux Bash命令关于程序调试详解

    转载:http://os.51cto.com/art/201006/207230.htm 参考:<Linux shell 脚本攻略>Page22-23 Linux bash程序在程序员的使 ...

  4. python中debug断点调试

    python Debug 断点调试 断点(break point)是指在代码中指定位置,当程序运行到此位置时变中断下来,并让开发者可查看此时各变量的值.因断点中断的程序并没有结束,可以选择继续执行. ...

  5. Java学习日志(八): 可变参数,debug断点调试,静态导入,集合嵌套

    JavaEE学习日志持续更新----> 必看!JavaEE学习路线(文章总汇) Java学习日志(八) 可变参数 debug断点调试 静态导入 集合嵌套 可变参数 JDK1.5之后的新特性 作用 ...

  6. Intellij IDEA 2017 debug断点调试技巧与总结详解篇

    IntelliJ IDEA使用教程 (总目录篇) 在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦. 下面不要在意,这个快捷键具体是啥 ...

  7. Eclipse Debug调试详解

    目录 一.debug透视图: 1.进入方式:​右上角点击添加框,选择"臭虫",再点击小虫. 2.debug调试下的一些常用一些透视图,如果没有自行添加,windows---> ...

  8. PyCharm中Debug模式进行调试详解

    参考博文: Pycharm Debug调试(纯干货)_小麦粒的博客-CSDN博客 pycharm下debug详解_诺一呦-的博客-CSDN博客_pycharm的debug怎么用 Pycharm Deb ...

  9. DEBUG命令使用详解

    Debug (原意杀虫子)这里是机器调试工具.    Debug常用命令集   名称 解释 格式  a (Assemble) 逐行汇编 a [address]  c (Compare) 比较两内存块 ...

  10. 文件不能断点 webstorm_详解python使用金山词霸的翻译功能(调试工具断点的使用)...

    这篇文章主要介绍了详解python使用金山词霸的翻译功能(调试工具断点的使用),本文给大家介绍得非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 今天试着用python获取金山 ...

最新文章

  1. JAVA日期加减运算
  2. 扇贝编程python是干嘛的-产品观察 | 以对话式互动学习撬动转化,扇贝编程瞄准职教市场...
  3. 套接字选项SO_KEEPALIVE
  4. 你有没有觉得邮件发送人固定配置在yml文件中是不妥当的呢?SpringBoot 动态设置邮件发送人
  5. FreeMarker插件的安装
  6. 数学学渣的福利,看看图就能学会的机器学习
  7. long java 比较_Java到底是不是一种纯面向对象语言?
  8. Python 最难的问题
  9. fork-join详解(1)
  10. ASP.NET 2.0中实现跨页面提交
  11. TCHAR、WCHAR、CHAR以及WideCharToMultiByte、MultiByteToWideChar
  12. HTTP1.1之后的长连接和WebSocket的长连接之间的区别
  13. IOS的Application以及IOS目录的介绍
  14. lux视频下载工具的安装和使用
  15. 一个数根号3怎样用计算机计算,手机计算器怎样打出根号3
  16. word背景颜色怎么设置绿色?把word背景调成绿色
  17. QComboBox显示文本居中问题
  18. 全网最详细!vue中使用flv.js 播放直播监控视频流
  19. Android官方架构组件Navigation:大巧不工的Fragment管理框架
  20. 【2022持续更新】大数据最全知识点整理-HBase篇

热门文章

  1. 清华conda源下不了torch_使用清华镜像源安装Pytorch
  2. Ionic页面的生命周期 (事件)
  3. jeecms v9图标不显示问题
  4. 关于修改文件拒绝访问的问题
  5. 第一次QMK编译记录(11.26)
  6. 如何和下属谈心(转)
  7. 迈普交换机_配置手册_IS420
  8. 当硅谷码农还在吃着火锅唱着歌,工作已经快没了
  9. 整数拼接(记忆化更新)
  10. 西边人西说测试,测试蓝本 | 一篇文章看懂什么是测试,测试是干什么的