美文网首页
idea断点调试

idea断点调试

作者: 赵恩栋 | 来源:发表于2022-02-19 21:38 被阅读0次

断点调试

前言

大家在开发的过程肯定会遇到bug,那大家是怎么找出bug的呢,System.out.println()?呃,这种也是一种方式,但是如果我们想更便捷的开发,不得不了解Debug调试工具了。当你对各种可能出现的bug的数据进行输出时,会debug的童鞋已经拿到了运行期间所有的数据,并且能对数据进行操作,可以说不会Debug的程序猿不是一个合格的程序猿。

古人云:工欲善其事必先利其器,那下面就跟着小编来学习Debug吧。

1. 由来

DEBUG是计算机排除故障的意思。马克2号(Harvard Mark II)编制程序的格蕾丝·霍珀(Grace Hopper)是一位美国海军准将及计算机科学家,同时也是世界最早的一批程序设计师之一。有一天,她在调试设备时出现故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍珀诙谐地把程序故障统称为“臭虫(BUG)”,把排除程序故障叫DEBUG,那这个词也就这么来了.

那到了今天Debug究竟是什么意思呢?其实从本质上来说, Debug是一种程序,一种调试工具,说白了就是供程序员检查修改问题的工具。

2. 启动 debug 模式

1. 启动debug模式,方便随时调试代码

image-20210119145007410

2. 设置debug窗口

勾选 Show debug wndow on beakpint 之后,运行到第一个断点会直接激活debug窗口

image-20210119145624095

3. 设置断点

在想要设置断点的所在行的左边行号栏点击左键

image-20210119145925723

或者在想要设置断点的所在行使用快捷键 Ctrl + F8 设置/取消断点

4. 调试按钮&服务按钮

1. 调试按钮

image-20210119150339452

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

Step Over (F8):步过,一行一行地往下走,执行行存在方法也不跳入;

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

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

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

Drop Frame(无快捷键):回退断点,有时候当我们步入方法体之后,还想回退到方法体外,点这个按钮后,断点重新回到方法体之外。在继续还是可以再次进到方法内

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

Evaluate Expression (Alt + F8):计算表达式,可以计算想要查看代码的值。

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

image-20210119162839769

2. 服务按钮

image-20210119155509131

Rerun ‘xxx’(Ctrl + F5): 重新运行程序,会关闭服务后重新启动程序

Roggle auto-test:切换自动化测试

Resume Program (F9):遇到断点停下,没有断点则运行完整个流程;

Pause Program:暂停程序,启用Debug

Stop 'xxx' (Ctrl + F2):连续按两下,关闭程序。

View Breakpoints (Ctrl + Shift + F8):查看所有断点

Mute Breakpoints:哑的断点,选择这个后,所有断点变为灰色,失效。如果只想使某一个断点失效,可以在断点上右键取消Enabled,如图下图,则该行断点失效,断点失效后变为空心圆圈。

image-20210119164435202

5. 变量查询

1. 在需要查看的变量上,鼠标悬停 2s 左右

image-20210119161014112

2. Alter + 鼠标左键

点啥看啥,非常滴方便

image-20210119161301091

3. 在 Variables 中查看

Variables中显示已运行程序的所有变量

image-20210119161538713

4. 在 Watches 中查看

可以点击 加号,输入要查看的变量,也可以直接同 Variables 中拖入 Watches 中查看

点击 Variables 操作栏中的 img

图标,调出Watches栏

image-20210119162402664 image-20210119161950672

5. 利用计算表达式查看

image-20210119162632290

6. 变量修改

在调试代码的时候,实时的修改运行状态的代码变量的值

在 variables 中选中需要修改的字段,右键 Set Value (F2)

image-20210119163506167

7. 断点条件设置

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

场景举例:如果我们遍历一个比较大的集合或者数组是,在循环体内部设置了一个断点,如果没有断点条件设置,我们就需要一个一个的查看变量的值,这样肯定不是我们想看到的。

这时候就可以用到断点条件设置,在断点上右键 在 Conditions下方的框中设置条件,设置之后,只有满足条件的情况下断点才会有效,否则直接跳过。

image-20210119194645501

相关文章

  • AndroidStudio 动态调试Smali代码

    AndroidStudio调试方式其实和IDEA调试方式比较类似,毕竟是基于IDEA开发的。 优点是:断点可以打的...

  • Idea中断点类型:All和Thread的区别

    Idea 中的断点类型,在 Idea 中调试 java 代码时,断点类型有两种: All Thread 大概的区别...

  • Intellij IDEA 2017 debug断点调试技巧与总

    Intellij IDEA 2017 debug断点调试技巧与总结详解篇

  • idea断点调试

    断点调试 前言 大家在开发的过程肯定会遇到bug,那大家是怎么找出bug的呢,System.out.println...

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

    一、多线程调试断点 Intellij IDEA 的debug断点调试是有一个模式的选择的,就像下面这张图,平时我们...

  • spark断点调试

    断点调试 参考:http://danosipov.com/?p=779 测试代码 IntelliJ Idea 生成...

  • 6.Debug工具的使用

    Debug工具的使用 Debug工具即调试,是IDEA自带的断点调试(排错)工具,可以控制代码从断点开始一行一行的...

  • Android Studio调试

    参考 断点调试 实用调试 总结:断点调试有step into step out 等 实用调试:条件断点、日志断点、...

  • Idea断点技巧

    问题提出 调试zk的时候,主线程打断点,断点恢复后zk连接不可用了。 问题解释 Idea的断点有两种情况:挂起所有...

  • Arcpy调试技巧

    由于未找到方法用ArcMap结合intellij idea断点调试方法,所以找了一个其它调试方法 1.点击Geop...

网友评论

      本文标题:idea断点调试

      本文链接:https://www.haomeiwen.com/subject/atovlrtx.html