IDEA中Debugger的使用

原站地址:https://www.cnblogs.com/chiangchou/p/idea-debug.html

学习目标:

熟练掌握开发过程中,DEBUG调试过程

学习内容:

一、Debug窗口介绍
二、基本用法&快捷键
三、变量查看
四、计算表达式
五、智能步入
六、断点条件设置
七、回退断点


一、Debug窗口介绍

  1. 为了方便显示,首先设置debug模式下需要显示的窗口,位置:file>settings

在这里插入图片描述
在这里插入图片描述
2. 初始化窗口
使用快捷键:shift+F12或者
在这里插入图片描述
3. 窗口介绍
简单说下图中标注的8个地方:

① 以Debug模式启动服务,左边的一个按钮则是以Run模式启动。在开发中,我一般会直接启动Debug模式,方便随时调试代码。

② 断点:在左边行号栏单击左键,或者快捷键Ctrl+F8 打上/取消断点,断点行的颜色可自己去设置。

③ Debug窗口:访问请求到达第一个断点后,会自动激活Debug窗口。如果没有自动激活,可以去设置里设置,如图1.2。

④ 调试按钮:一共有8个按钮,调试的主要功能就对应着这几个按钮,鼠标悬停在按钮上可以查看对应的快捷键。在菜单栏Run里可以找到同样的对应的功能,如图1.4。

⑤ 服务按钮:可以在这里关闭/启动服务,设置断点等。

⑥ 方法调用栈:这里显示了该线程调试所经过的所有方法,勾选右上角的[Show All Frames]按钮,就不会显示其它类库的方法了,否则这里会有一大堆的方法。

⑦ Variables:在变量区可以查看当前断点之前的当前方法内的变量。

⑧ Watches:查看变量,可以将Variables区中的变量拖到Watches中查看

在这里插入图片描述
在这里插入图片描述

二、基本用法&快捷键

在这里插入图片描述

  • Show Execution Point (Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。
  • Step Over (F6):步过,一行一行地往下走,如果这一行上有方法不会进入方法。
  • Step Into(F5):步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法,如第25行的put方法。
  • Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
  • Step Out (F7):步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
  • Drop Frame (默认无):回退断点,后面章节详细说明。
  • Run to Cursor (Crl+R):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
  • Evaluate Expression (Crl+R):计算表达式,后面章节详细说明。

三、变量查看

  1. 如下,在IDEA中,参数所在行后面会显示当前变量的值
    在这里插入图片描述

  2. 光标悬停到参数上,显示当前变量信息。我一般会使用这种方式,快捷方便。
    在这里插入图片描述

  3. 在Variables里查看,这里显示当前方法里的所有变量。
    在这里插入图片描述
    4、在Watches里,点击New Watch,输入需要查看的变量。或者可以从Variables里拖到Watche里查看。
    在这里插入图片描述

四、计算表达式

在这里插入图片描述
在这里插入图片描述

五、智能步入

想想,一行代码里有好几个方法,怎么只选择某一个方法进入。之前提到过使用Step Into 或者 Force Step Into进入到方法内部,但这两个操作会根据方法调用顺序依次进入,这比较麻烦。
  那么智能步入就很方便了,智能步入,这个功能在Run里可以看到,Smart Step Into
在这里插入图片描述
在这里插入图片描述

六、断点条件设置

通过设置断点条件,在满足条件时,才停在断点处,否则直接运行。

通常,当我们在遍历一个比较大的集合或数组时,在循环内设置了一个断点,难道我们要一个一个去看变量的值?那肯定很累,说不定你还错过这个值得重新来一次。

1、在断点上右键直接设置当前断点的条件,我设置j==3为true时断点才生效。
在这里插入图片描述
2、点击View Breakpoints (Ctrl + Shift + F8),查看所有断点。
Java Line Breakpoints 显示了所有的断点,在右边勾选Condition,设置断点的条件。
勾选Evaluate and log,可以在执行这行代码是计算表达式的值,并将结果输出到控制台。
    在这里插入图片描述
3、异常断点,通过设置异常断点,在程序中出现需要拦截的异常时,会自动定位到异常行。
在这里插入图片描述

七、回退断点

  1. 断点回退
      所谓的断点回退,其实就是回退到上一个方法调用的开始处,在IDEA里测试无法一行一行地回退或回到到上一个断点处,而是回到上一个方法。
    回退的方式有两种,一种是Drop Frame按钮(图8.2),按调用的方法逐步回退,包括三方类库的其它方法(取消Show All Frames按钮会显示三方类库的方法,如图8.3)。
      第二种方式,在调用栈方法上选择要回退的方法,右键选择Drop Frame(图8.4),回退到该方法的上一个方法调用处,此时再按F9(Resume Program),可以看到程序进入到该方法的断点处了。
      但有一点需要注意,断点回退只能重新走一下流程,之前的某些参数/数据的状态已经改变了的是无法回退到之前的状态的,如对象、集合、更新了数据库数据等等。
    在这里插入图片描述
    在这里插入图片描述

学习时间:

1、2020年10月14日 10:25:16


学习产出:

  • 5
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果您使用的是IDEA的调试器窗口,但是窗口不见了,您可以尝试以下方法: 1. 检查窗口是否被最小化了,如果是,请尝试将其还原。 2. 检查IDEA的窗口布局,可能是您不小心将调试器窗口拖到了其他位置。您可以尝试重新调整窗口布局,或者使用IDEA的重置窗口布局功能。 3. 检查您的IDEA版本是否有更新,如果有,请尝试更新到最新版本。 4. 如果以上方法都无效,您可以尝试重启IDEA,或者在IDEA的设置重置调试器窗口的设置。 希望以上方法能够帮助您找回调试器窗口。 ### 回答2: 当使用idea调试程序时,可能会发现debugger窗口不见了,这种情况可能是由以下原因导致的: 1. 隐藏了debugger窗口:有时我们会不小心将debugger窗口隐藏了起来,此时可以通过按下“Shift+Alt+F12”来显示窗口。 2. 窗口被拖动到非常小:如果调整窗口大小,可能会导致窗口太小而看不见了,此时可以尝试将窗口恢复到默认大小。 3. 窗口被最小化了:在使用IDEA时,我们一不小心就可能会将窗口最小化,可以通过点击任务栏的应用程序来显示窗口。 4. 进程已经结束:如果代码存在问题导致程序直接退出,那么debugger窗口也会被立即关闭,此时可以在控制台或者日志查看具体错误信息。 如果以上方法都没有解决问题,那么建议重新启动IDEA或者重装IDEA,这可以很好地解决问题。另外,我们也可以通过在设置将窗口置于最前面或者将调试窗口与代码编辑窗口分离来预防这些问题的发生。 ### 回答3: 如果你在使用idea的时候,发现debugger窗口不见了,可能是由于一些特定的原因导致的。以下是一些可能导致debugger窗口不见的原因及其解决方案: 1. 窗口被最小化或隐藏了:检查一下是否在调试期间将窗口最小化或隐藏了,最好关闭所有窗口,重新打开idea,以确保你可以看到调试器窗口。 2. 窗口被移动或改变了大小:有时候,调试器窗口可能被移动或改变了大小,以至于在屏幕上看不到。你可以试着将鼠标放在屏幕的边缘,看看是否可以拖回窗口。 3. 窗口在其他监视器上:如果你有多个显示器,那么调试器窗口可能出现在其他监视器上。你可以尝试在其它屏幕上查看窗口。 4. 视图不正确:尝试更改debugger窗口的视图。你可以通过单击“视图”菜单的“恢复默认布局”来恢复原来的视图。 5. IDEA安装文件丢失:如果以上方法都无法解决问题,那么可能是由于IDEA的安装文件丢失或损坏导致的这种情况下你可以尝试重新安装IDEA,此时debugger窗口应该就可以正常显示了。 6. 切换Debug模式:尝试切换Debug模式以查看窗口是否会出现。在idea,你可以通过按下Shift+F9键来切换Debug模式。 总体来说,以上就是一些可能导致debugger窗口不见的原因及其解决方案。如果没有成功,请尝试在idea官方社区或其他类似的技术论坛上搜索和寻找其他人的解决方案或寻求帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值