文章目录

  • 基础篇:
    • 一、行断点
    • 二、详细断点(源断点)
    • 三、方法断点
    • 四、异常断点
    • 五、字段断点
  • 进阶篇
    • 一、条件表达式
    • 二、通过调试来打印堆栈信息
    • 三、可以通过调试来解析表达式
    • 四、避免操作资源drop frames
    • 五、常用按键功能介绍
    • 六、调试源码
    • 七、stream调试

基础篇:

一、行断点


二、详细断点(源断点)

打出源断点的方法:按住shift + 左键可以打出源断点

1.已启用(enable)
2.挂起(suspend):这个如果勾选的话,你会发现这个断点的颜色就会变成红色,和行断点的颜色相同。
suspend中有两个选项,一个是all,一个是Thread。前者勾选之后表示只要运行到这个地方就会停。后者是在多线程调试的时候使用的。表示只有在当前线程的时候会停,别的线程不会停。
3.条件(condition):这个是高阶停止条件,诸如满足if啥啥条件时才会停,这个就是高阶的调试时会用到。
在程序运行完后,图中所示的位置会打印出经过断点的位置,在哪一行被触发的,具体的一个类,以及所在方法的详细签名都会显示出来。

三、方法断点

在方法的那一行上打上断点,就是方法断点

在方法断点的调试的时候,会分别在该方法的前后停住。

四、异常断点

异常断点需要自行配置,配置完了之后当程序运行到出现某个配置好的异常的时候就会停下来。



经过这几步即可完成异常断点的设置。

五、字段断点


检测整个生命周期值的变化


你会惊奇的发现,每个字段对应的值都会给你标上去,而且你需要特殊监控的字段会单独标注出来。

进阶篇

一、条件表达式

打上行断点之后,鼠标右击断点,即可对断点进行编辑,给断点添上条件

当i是偶数的时候停顿。

二、通过调试来打印堆栈信息


这两个勾选上之后就可以打印堆栈信息了。

三、可以通过调试来解析表达式


点击这个长得像计算机一样的按钮,就会出来evaluat面板。

点击评估按钮,就可以出来表达式解析的内容,可以很方便地查看各种你想查看的信息,这个功能简直强的离谱。

四、避免操作资源drop frames


在这里打上断点,模拟在此处遇到了事务操作的问题。

很好现在很难受的时候发生了,我们现在要做的就是将程序停下来,防止将错误的数据存到数据库中。正常人第一反应就是点击图中的红色方块,将程序强制停止下来,这样就不会把错误的数据存到数据库中了吧。那么事实是这样吗?让我们看看点击之后的效果。

很遗憾,更加shit的事情发生了。我们以为程序停止了,实际上并没有完全停止。tnn的还是把后面的语句都执行完了啊,错误的信息还是存到数据库中去了。

江湖上流传着一个解决方法,点击下图中的这个按钮,丢弃当前帧(drop frame)。

然而这么做实际的效果是:

回到了这个方法开始执行的时候,也就是进入该方法前的位置。

我们点击步入,又回到了这个位置,进行了无限的套娃操作。
然而真正的解决方法应该是。。。。。。。拔电源,没错,这样就不会又任何的问题了。

回到正题,真正的解决方法如下:
首先进入帧(frames)面板,找到对应的运行的位置,右键弹出选择框。


然后选择force return

然后看控制台发现后面的内容确实没有执行,控制台没有任何的输出。

五、常用按键功能介绍


1.显示执行点(show execution point):点击之后鼠标光标可以直接回到断点所在的位置。
2.步过(step over):不管当前行会不会调用其他的方法,或者是跳到其他地方去都不会管,直接执行完当前行跳到下一行代码。
3.步入(step in)和步出(step out):这个好理解就是执行下一步,回到上一步。
4.强制步入(force step into):点击之后,强制进入方法的内部查看。
5.运行到光标处(run to cursor):点击之后,可以直接运行到光标所在的位置,在这之间不会有任何停顿。

六、调试源码

在方法开始的地方打一个断点,然后在需要查看的方法的源码中也打上一个断点。

七、stream调试

在这三行的任意一个位置都是可以打断点的,并且在给stream打断点的时候会有特殊选项。


选好后,开始运行程序,我们发现程序中没有任何的数据显示和输出。

但是在像计算机按钮的旁边出现了一个按钮。
Trace Current Stream Chain(跟踪当前流链)
点击之后的效果简直裂开。



还可以选择扁平模式,看得更加直观。

IDEA调试技巧(图文详解,保姆教程)相关推荐

  1. Git实操图文详解系列教程(3)——IDEA集成Git

    版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 开发环境 本系列教程所涉开发环境,详情如下: 1.Win10 2.JDK1.8 3.Git2. ...

  2. Unified Functional Testing(UFT)15.0.2入门保姆级教程(二),图文详解。QTP

    UFT入门之验证点和参数化 UFT15.0.2教程之侦测器(ObjectSpy)及脚本录制 请移步:Unified Functional Testing(UFT)15.0.2入门保姆级教程(一),图文 ...

  3. Unified Functional Testing(UFT)15.0.2入门保姆级教程(一),图文详解。QTP

    UFT入门之侦测器(ObjectSpy)及录制第一个脚本 实验说明 1.Quick Test Pro(QTP)11.5后更名为Unified Functional Testing(UFT) 2. 实验 ...

  4. python3.6安装教程-python3.6环境安装+pip环境配置教程图文详解

    1.python安装可以跨平台 2.有两个版本2.7和3.6,第三方库适用2.7版,两个版本不兼容 windows安装: 第一种方法官网安装: 在官网下载安装包如图: 图下点击是默认下载32位所以我们 ...

  5. python详细安装教程环境配置-python3.6环境安装+pip环境配置教程图文详解

    1.python安装可以跨平台 2.有两个版本2.7和3.6,第三方库适用2.7版,两个版本不兼容 windows安装: 第一种方法官网安装: 在官网下载安装包如图: 图下点击是默认下载32位所以我们 ...

  6. python3.6.0怎么安装pip_python3.6环境安装+pip环境配置教程图文详解

    1.python安装可以跨平台 2.有两个版本2.7和3.6,第三方库适用2.7版,两个版本不兼容 windows安装: 第一种方法官网安装: 在官网下载安装包如图: 图下点击是默认下载32位所以我们 ...

  7. CentOS 7安装教程(图文详解)如下

    虚拟机安装 CentOS 7安装教程(图文详解)如下:

  8. mysql安装教程8.0.21安装_mysql8.0.21安装教程图文详解

    1.下载 下载链接 点击download,这里可能需要登录甲骨文的账号,登录一下即可 2.解压 下载好会得到一个安装包 把它解压到一个能找到的目录下即可,我的是这样(my.ini文件你们应该没有) 3 ...

  9. MySQL Installer 8.0.21安装教程图文详解 转载

    MySQL Installer 8.0.21安装教程图文详解 原地址 1. 缘由 刚好需要在新系统上重新安装MySQL,便写了一份的下载安装教程,供查阅,以防日后细节有所遗忘. 2. 版本说明 MyS ...

  10. GitHub 使用教程图文详解(转)

    大纲: 一.前言 二.GitHub简介 三.注册GitHub账号 四.配置GitHub 五.使用GitHub 六.参与GitHub中其它开源项目 七.总结 注,GitHub官网:https://git ...

最新文章

  1. 没有什么效果的html标签,你知道却不常用的HTML标签(一)
  2. Kubernetes StatefulSet源码分析
  3. 用算法代替生物大脑,90后博士造出活的微型机器人登上Science子刊
  4. hdu 1228-A+B
  5. java 字节码增强原理_深入浅出Java探针技术1--基于java agent的字节码增强案例
  6. xampp如何上传文件到服务器,xampp安装到云服务器
  7. 《『若水新闻』客户端开发教程》——17.软件自动更新
  8. Linux内核等待队列wait_queue学习
  9. HackerRank [Algo] Matrix Rotation
  10. 戴尔服务器r720u盘装系统,DELL R720服务器U盘安装操作系统指南
  11. html chm用浏览器打开方式,如何在网页中打开chm格式的文件
  12. 看完这篇文章,你肯定理解什么是浮点数了!
  13. 大一学生一周十万字爆肝版C语言总结笔记
  14. QQ2005Beta3与输入法组件冲突的解决办法(转)
  15. C++ 不要忘记指针变量的初始化
  16. 快速定量,Abbkine 蛋白质定量试剂盒BCA法来了!
  17. 有哪些优质的电脑端浏览器推荐?
  18. oracle安装rac前存储配置,Oracle11g RAC+ASM安装前存储规划注意事项
  19. 数值方法2:龙格库塔法在解微分方程中的应用
  20. Friends number

热门文章

  1. 【89】nbtstat
  2. 2018最值得期待:无人驾驶网络技术的先锋云杉网络
  3. 【毕设记录日记】深度学习|铝型材表面缺陷视觉检测算法:相关课程、论文及公开数据集
  4. 四个问题秒杀4年经验C#程序员
  5. 第9关:喊出我的名字(1)
  6. Global Optimization via Optimal Decision Trees
  7. 结构型模式的设计模式笔记
  8. cad07无法看见教育版的标注
  9. mpvue小程序云开发 + 富文本editor
  10. 豆瓣评分8.0:深入理解Java虚拟机,把的GC算法与实现讲得明明白白