debug的基本使用

1.简介
  首先看下IDEA中Debug模式下的界面。

  如下是在IDEA中启动Debug模式,进入断点后的界面,我这里是Windows,可能和Mac的图标等会有些不一样。就简单说下图中标注的8个地方:

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

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

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

64156ba9ae3c4205a80fda7cf293ef87.png 

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

72239dde32004a6f893465952d0a202d.png 

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

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

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

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

  [图1.1]a03c96485a5540ea9c639932a44f7a38.png

   [图1.2]:在设置里勾选Show debug window on breakpoint,则请求进入到断点后自动激活Debug窗口  b59c50fb3fad43f98b2276a10ed75f0c.png

  [图1.3]:如果你的IDEA底部没有显示工具栏或状态栏,可以在View里打开,显示出工具栏会方便我们使用。可以自己去尝试下这四个选项。

34b827fc94ac4006a2df00dfe960f930.png 

  [图1.4]:在菜单栏Run里有调试对应的功能,同时可以查看对应的快捷键。

 342d0e4f27cb4560ad1e3f62763ed35b.png 

 

二、基本用法&快捷键
Debug调试的功能主要对应着图一中4和5两组按钮:

  1、首先说第一组按钮,共8个按钮,从左到右依次如下:

 [图2.1]

96fc2d1761124a06bd9bde4704d8b78d.png 

    > Show Execution Point (Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。

    > Step Over (F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。

    > Step Into (F7):步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法,如第25行的put方法。

    > Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。

    > Step Out (Shift + F8):步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。

    > Drop Frame (默认无):回退断点,后面章节详细说明。

    > Run to Cursor (Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。

    > Evaluate Expression (Alt + F8):计算表达式,后面章节详细说明。

  2、第二组按钮,共7个按钮,从上到下依次如下:

  [图2.2]

26b3149b2dbb43a38fbab3c69d5af4e8.png

 

    > Rerun 'xxxx':重新运行程序,会关闭服务后重新启动程序。

    > Update 'tech' application (Ctrl + F5):更新程序,一般在你的代码有改动后可执行这个功能。而这个功能对应的操作则是在服务配置里,如图2.3。

    > Resume Program (F9):恢复程序,比如,你在第20行和25行有两个断点,当前运行至第20行,按F9,则运行到下一个断点(即第25行),再按F9,则运行完整个流程,因为后面已经没有断点了。

    > Pause Program:暂停程序,启用Debug。目前没发现具体用法。

    > Stop 'xxx' (Ctrl + F2):连续按两下,关闭程序。有时候你会发现关闭服务再启动时,报端口被占用,这是因为没完全关闭服务的原因,你就需要查杀所有JVM进程了。

    > View Breakpoints (Ctrl + Shift + F8):查看所有断点,后面章节会涉及到。

    > Mute Breakpoints:哑的断点,选择这个后,所有断点变为灰色,断点失效,按F9则可以直接运行完程序。再次点击,断点变为红色,有效。如果只想使某一个断点失效,可以在断点上右键取消Enabled,如图2.4,则该行断点失效。

     [图2.3]:更新程序,On 'Update' actions,执行更新操作时所做的事情,一般选择'Update classes and resources',即更新类和资源文件。

       一般配合热部署插件会更好用,如JRebel,这样就不用每次更改代码后还要去重新启动服务。如何激活JRebel,在最后章节附上。

       下面的On frame deactivation,在IDEA窗口失去焦点时触发,即一般你从idea切换到浏览器的时候,idea会自动帮你做的事情,一般可以设置Do nothing,频繁切换会比较消耗资源的。

       

    [图2.4]

    

 

三、变量查看
在Debug过程中,跟踪查看变量的变化是非常必要的,这里就简单说下IDEA中可以查看变量的几个地方,相信大部分人都了解。

  1、如下,在IDEA中,参数所在行后面会显示当前变量的值。

 [图3.1]

6cfb3f59a1e24a9ba0fffb24d0fe65b6.png 

  2、光标悬停到参数上

,显示当前变量信息。点击打开详情如图3.3。一般会使用这种方式,快捷方便。

 [图3.2]

2b62c70b06fa493baee4aef832afb98f.png 

 [图3.3]

a036a700d3724054b82f2238aadec8a2.png

 

  3、在Variables里查看,这里显示当前方法里的所有变量。

  [图3.4]

b3675a80e4e34ca09b2115809fe998f6.png 

  4、在Watches里,点击New Watch,输入需要查看的变量。或者可以从Variables里拖到Watche里查看。

 [图3.5]

79b0251f07b043b0898bd5cc7fc72b1c.png 

  如果你发现你没有Watches,可能在下图所在的地方。

[图3.6]  

52422d35d8ed4badb724ea1853c4f0cd.png 

 [图3.7]

42be3f1bf24d449ab157c7ecc3fc3a3e.png 

四、计算表达式
  在前面提到的计算表达式如图4.1的按钮,Evaluate Expression (Alt + F8) 。可以使用这个操作在调试过程中计算某个表达式的值,而不用再去打印信息。

[图4.1]

f8a802abaa8f4e17bdc560e2bd2e6590.png 

  1、按Alt + F8或按钮,或者,你可以选中某个表达式再Alt + F8,弹出计算表达式的窗口,如下,回车或点击Evaluate计算表达式的值。

     这个表达式不仅可以是一般变量或参数,也可以是方法,当你的一行代码中调用了几个方法时,就可以通过这种方式查看查看某个方法的返回值。

  • 43
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莳光.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值