你不知道的 IDEA Debug调试小技巧(小结)

一、多线程调试断点

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

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

二、回退断点

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

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

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

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

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

三、条件断点

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

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

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

四、临时断点

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

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

五、求值计算

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

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

打开后是这样的:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Intellij idea远程debug连接tomcat实现单步调试

    web项目部署到tomcat上之后,有时需要打断点单步调试,如果用的是Intellij idea,可以通过如下方法实现: 开启debug端口,启动tomcat 以tomcat7.0.75为例,打开bin目录下的catalina.bat文件,如下图,可以看到默认的debug端口是8000,如果本地的8000已经被占用,请改成一个未占用的端口号: 在bin目录下执行命令catalina.bat jpda start,可以启动tomcat并开启远程调试的端口 在Intellij idea中远程连接to

  • 详解Intellij IDEA 2017 debug断点调试技巧(总结)

    在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦. 下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的,有的人keymap是mac版的,有的是Windows版的. 我的就是Windows,而且修改keymap为eclipse的keymap,因为我算是eclipse转过来的吧. 下面直接看图,详细解释,每一个按钮(按钮对应图中的数字)都是什么功能. 1,rerun XXX,这个就是直接重新跑某个程序. 2,这个

  • Tomcat使用IDEA远程Debug调试的讲解

    Tomcat运行环境:CentOS6.5.Tomcat7.0.IDEA 远程Tomcat设置 1.在tomcat/bin下的catalina.sh上边添加下边的一段设置 CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=60222,suspend=n,server=y" 2.address=60222 这个是后边IDEA设置的时候需要用到的调试端口,可以任意设置一个未使用的端口,但是后边的配置都要一致. IDEA设

  • 你不知道的 IDEA Debug调试小技巧(小结)

    一.多线程调试断点 Intellij IDEA 的debug断点调试是有一个模式的选择的,就像下面这张图,平时我们都使用的是默认的 ALL(在Eclipse中默认是线程模式) ,这种模式我们只能将一个线程断下来,但其他线程却已经执行过了:而将其改为 Thread 后,就可以多个线程都断下来,并且可以很方便的切换线程的执行流程,这就是多线程调试. 在debug控制台能够很方便的查看线程的执行状态,也可以很方便的选择某个线程去执行: 二.回退断点 不知道大伙有没有遇到这样一个问题,当我们进行debu

  • 12个Visual Studio调试效率技巧(小结)

    在这篇文章中,我们假定读者了解 VS 基本的调试知识,如: F5 开始使用调试器运行程序 F9 在当前行设置断点 F10 运行到下一个断点处 F5 从被调试的已停止程序恢复执行 F11 步进到函数内(如果当前程序指针指向一个函数) F10 步过函数(如果当前程序指针指向一个函数) Shift+F11 步出执行的函数 暂停执行 附加到进程 鼠标悬停时快速查看源代码中的元素 调试窗口:局部变量.监视.即时窗口.模块.调用堆栈.异常设置 许多开发人员使用这个功能强大的工具包来处理调试会话.然而, Vi

  • 模板引擎正则表达式调试小技巧

    基于正则表达式替换的模板引擎很容易遇上正则表达式最大回溯/递归的限制. 惰性匹配并不可怕,正常情况下模板并不会不够用,往往不会超出限制,discuz的模板引擎就大量使用了.但是因此而不去注意.不去学习,则容易书写错误并遇上问题. 当preg_*返回的是null的时候则要注意了,判断函数是is_null. 出错并不可怕,但是最好把错误都完整的输出,这样调试就很容易了. 除了输出出错原因,还要输出匹配的文本和使用的正则,这样就很容易调试了. PHP代码 复制代码 代码如下: <?php if (is

  • JavaScript常用小技巧小结

    前言 总结一下最近接触到的JavaScript语法糖,与大家共享. 每块糖都有详细的说明和示例,就不多说了. 准确的类型检查 复制代码 代码如下: /*  * @function:  *   类型检查示例  *   通过此方法,可以检查某个变量是否为期望的数据类型  * @params:  *   obj 需要检查的变量,必选  *   config 数据类型白名单,可选,默认为全部类型  * @return:  *   true 表示检查通过,false 未通过  * @examples:  

  • 2019 年编写现代 JavaScript 代码的5个小技巧(小结)

    内容基本是今年从其他大神的文章学习到的东西.分享给大家: 1 Array.includes 与条件判断 一般我们判断或用 || // condition function test(fruit) { if (fruit == "apple" || fruit == "strawberry") { console.log("red"); } } 如果我们有更多水果 function test(fruit) { const redFruits = [

  • Koa 使用小技巧(小结)

    cookie的安全保护 基于cookie来验证用户状态的系统中,如何提高cookie的安全级别是首要因素,最简单直接的方式就生成的cookie值随机而且复杂.一般使用uuid来生成cookie,生成的随机串在复杂度上已满足需求,但是如果真被攻击者尝试到一个可用的值,那怎么防范呢?使用signed的cookie设置,如下所示: app.keys = ["token"]; ... ctx.cookies.set("jt", "abcd", { sig

  • Javascript调试之console对象——你不知道的一些小技巧

    前言 写过前端Javascript代码的同学肯定不会对console对象感到陌生,在调试的过程中我们经常会用console对象在控制台输出一些常量或者变量. 但是相信很多人也就只用过console.log()这一个方法,今天我们就一起来看看console对象还有哪些比较有用的方法.由于本篇文章是跟控制台有关,代码就直接在控制台展现而没有另外用新文件展示. 不同级别日志 通过console对象的不同方法,可以在控制台上输出不同级别的日志信息,它们会采用不同的标志来展示,如下图所示. 不同级别的日志

  • Eclipse的Debug调试技巧大全(总结)

    作为开发人员,掌握开发环境下的调试技巧十分有必要.我们在编写java程序的过程中,经常会遇到各种莫名其妙的问题,为了检测程序是哪里出现问题,经常需要增加日志,看变量的值,这样调试很麻烦.假设我每天花费1小时在调试我的应用程序上的话,那累积起来的话也是很大量的时间.由于这个原因,用这些时间来重视并了解所有使我们调试更方便的功能.那能为你省下一些时间,也将会使你的生活更安逸.轻松. 一.Debug视图 调试中最常用的窗口是: 窗口 说明 Debug窗口 主要显示当前线程方法调用栈, 以及代码行数(有

  • 11个Javascript小技巧帮你提升代码质量(小结)

    本文会不断更新,不足之处欢迎评论区补充. 1. 提炼函数 好处: 避免出现超大函数. 独立出来的函数有助于代码复用. 独立出来的函数更容易被覆写. 独立出来的函数如果拥有一个良好的命名,它本身就起到了注释的作用. 语义化将多段分离的逻辑放在不同的函数中实现,可以使代码逻辑清晰,清楚的看到每一步在做什么. 代码举例: 实现获取数据,然后操作dom显示数据,最后添加事件 函数提炼前 // 逻辑都写在一起,需要将所有逻辑看完才知道这段代码是干嘛的,局部逻辑无法复用 function main() {

  • IDEA调试源码小技巧之辨别抽象类或接口多种实现类的正确路径

    1. 打断点 直接在抽象类或者接口前打断点,直接debug模式就能自动跳入正确的实现类,如图: 这个document的解析,有5种可能,哪个才是正确的?直接在前面打断点,就能跳入正确的了 2. 发现正确实现类 到此这篇关于IDEA调试源码小技巧之辨别抽象类或接口多种实现类的正确路径的文章就介绍到这了,更多相关IDEA调试源码内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

随机推荐