点击上方“朱小厮的博客”,选择“设为星标”

后台回复”加群“加入公众号专属技术群

来自:http://suo.im/4vlcHB

1、多线程调试断点

Intellij IDEA 的debug断点调试是有一个模式的选择的,就像下面这张图,平时我们都使用的是默认的 ALL(在Eclipse中默认是线程模式) ,这种模式我们只能将一个线程断下来,但其他线程却已经执行过了;而将其改为 Thread 后,就可以多个线程都断下来,并且可以很方便的切换线程的执行流程,这就是多线程调试。

在debug控制台能够很方便的查看线程的执行状态,也可以很方便的选择某个线程去执行:

2、回退断点

不知道大伙有没有遇到这样一个问题,当我们进行debug时,通常不会进入某个方法一步一步的执行,而是选择性的跳过;当你想要回头观察某个变量的值得变化时,而你刚好没有跟进去,跳过了这个方法,这个时候,变量就被赋值了,我们通常的做法是重来一次。

其实IDEA的调试功能是非常强大的,我们来看看熟悉的调试窗口:

使用红色框框出来的部分,表示当前程序执行到哪一块,哪一部分,你可以尝试用鼠标点点看,你会发现编辑器会跳转到对应的代码中,当然当前断点的位置通常会在列表的第一条。然后我们使用右键单击,你就可以看到如下图所示:

或者你也可以在下图中找到 Drop Frame:

在IDEA中,所谓的回退,叫 Drop Frame,选择Drop Frame后,程序会跳转回调用当前这个方法的地方,当然已经改变的值是不会恢复的。但是当该方法再次被调用时,你可以观察到某个变量什么时候被改变,至少我们不用再去重新运行一遍程序。

3、条件断点

条件断点就是当满足某个条件(通常是表达式)时,debug断点才会生效;这在循环中debug是非常有用的;例如我们想要在循环体中调试:当某个变量满足某个条件时,需要断点调试,来查看详细的执行流程及变化情况。

我们说过,IDEA中的debug功能是非常强大的,要使用条件断点也非常简单,下面这张图片中 Condition中的内容代表当name为eamon:23时,程序执行到断点处停下来。

有了条件断点,这样一来,那些不相关和我们不关心的代码就可以直接跳过了。

4、临时断点

所谓临时断点就是只断一次,IDEA默认断点会一致存在。如果你只需要暂停一次,那么使用临时断点会比较方便,因为暂停一次之后断点就自动消失了,不用手动取消。

临时断点可以通过在打断点时按住 Alt 或者 option 键,然后创建断点。也可以通过右键断点处,选择 more 然后在窗口中选中 Remove once hit

5、求值计算

求值计算功能在我们debug过程中,可以很方便的查看程序中所有变量的值,也可以临时修改程序中变量的值,这个功能能在一定程度上辅助我们进行代码调试。

这个功能可以在debug时在debug窗口打开:

打开后是这样的:

然后你就可以在表达式输入框中,输入你想要的操作,比如,查看变量、修改变量(临时的)、调用某个方法等;这些操作结果将会在下方的Result 窗口中输出。

想知道更多?描下面的二维码关注我


怎么加群?:

怎么免费加入知识星球:

免费资料入口:后台回复“666”

朕已阅 

你不知道的 IDEA Debug 调试小技巧!相关推荐

  1. 调试笔记--keil 断点调试小技巧

    调试笔记–keil 断点调试小技巧 给变量打断点 调试不熟悉的项目时,卧槽!怎么这么多全局变量?这玩意又在那修改了??这个时候会给变量打断点就能省好多事. 将要监视的全局变量添加到watch窗口 选中 ...

  2. 调试小技巧---利用调用堆栈

    2019独角兽企业重金招聘Python工程师标准>>> 调试小技巧---利用调用堆栈 如图:在解决bug的时候,不能确定下一步程序执行到哪,可以利用Xcode中的调用堆栈  来快速查 ...

  3. Excel表格中一些你不知道的鼠标双击实用小技巧

    Excel表格中一些你不知道的鼠标双击实用小技巧 目录 Excel表格中一些你不知道的鼠标双击实用小技巧 1.鼠标双击自动填充整列公式, 鼠标放在单元格右下角,鼠标指针变成十字时双击鼠标右键,整列汇总 ...

  4. 11个强大的Visual Studio调试小技巧

    伯乐在线注:我们在@程序员的那些事 微博上推荐了英文原文,感谢@halftone_被禁用了的热心翻译. 简介 调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍 ...

  5. 遇到BUG手足无措?还不快进来学习调试小技巧!

    目录 一.什么是BUG? 二.调试是什么? 调试的基本步骤 Debug和Realease的介绍 三.调试的具体方法 调试中的快捷键 查看临时变量的值 调试的实例 四.如何写出优秀(易于调试的代码) 常 ...

  6. 我从别人那里偷学的前端调试小技巧(浏览器篇)

    发现光,欣赏光,学习光 每个人身上都有着不同的闪光点,把焦点凝结在缺点上只会让互相难过.转移焦点,放在他的优点上,你会发现,唔还不错.而且,你还可以学习它,让你变得更棒.(我越来越擅长写鸡汤了???? ...

  7. C++编程中的四个调试小技巧

    1.调试标记 适用预处理#define定义一个或多个调试标记,在代码中把调试部分使用#ifdef 和#endif 进行管理.当程序最终调试完成后,只需要使用#undef标记,调试代码就会消失.常用的调 ...

  8. 你不知道的电脑36个小技巧(纪念2011教师节)

    1 如何修改虚拟内存:我的电脑右键→属性→高级→性能处的设置按钮→高级→虚拟内存处的更改,就可以设置虚拟内存的大小,甚至是位置喽 2批量重命名:选择几个文件,接着按下F2,然后重命名这些文件中的一个, ...

  9. IDEA调试小技巧 —— Evaluate调试工具

    问题 在debug调试代码时,如何更快的定位问题,并运行指定代码. 解决 使用idea自带调试工具Evaluate Expression. 共支持两种模式:表达式模式.代码模式.可以支持动态查看,以及 ...

最新文章

  1. 判断回文链表(剑指offer.027)
  2. ssh sftp 免密码 公钥登录
  3. IntelliJ IDEA 14.x 创建工作空间与多个Java Web项目
  4. linux cpu不足处理运维,Linux运维知识之Linux服务器CPU占用率较高问题排查思路
  5. XML指南——XML元素
  6. PHP用301重定向根域名到www域名
  7. 【图像加密】基于matlab DNA混沌系统图像加密【含Matlab源码 1190期】
  8. 计算机关闭提示音,即将发布:如何关闭Apple计算机启动提示音
  9. 大漠插件7.2137
  10. 大一计算机引论知识点,计算机引论知识点2015精选.doc
  11. Python基础总结
  12. echarts地图显示问题
  13. FMCW毫米波雷达中CFAR研究初探(附Python代码)
  14. OpenWRT路由器-中继模式下无线接入
  15. 递归求平均数|理解|讲解| c语言
  16. Xmarks书签同步工具的用法
  17. c语言求abc大小时要怎么输入,C语言 有3个数a,b,c,要求按大小顺序把它们输出。,急!!!!!有三个数abc,要求按大小顺序输出. 请问用C语...
  18. php处理微信消息,微信开发之处理微信客户端发来的消息
  19. 【超详细】嵌入式软件学习大纲
  20. 普通话测试app怎么样可以不交钱_考了几次普通话,仍无法达到理想成绩?

热门文章

  1. html桌面刷新,桌面不能自动刷新怎么办
  2. 【图文详解】第一个Java程序HelloWorld详解,写Java程序需要注意什么
  3. 提高调试.net cf程序效率一些技巧
  4. outlook vba开发要点
  5. Testlink使用介绍
  6. linux中redis的主从
  7. Spring学习之AOP(面向切面编程)
  8. Java自动装箱与拆箱及其陷阱
  9. lua工具库penlight--06数据(一)
  10. OD使用教程3(中) - 调试篇03|解密系列