IDEA的使用(三)Debug(断点调试)(IntelliJ IDEA 2022.1.3版本)

2023-10-11 01:45

本文主要是介绍IDEA的使用(三)Debug(断点调试)(IntelliJ IDEA 2022.1.3版本),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

编程过程中如果出现错误,需要查找和定位错误时,借助程序调试可以快速查找错误。

编写好程序后,可能出现的情况:

        1.没有bug。

        使用Debug的情况:

        2.运行后,出现错误或者异常信息,但是通过日志文件或者控制台,显示了异常信息的位置。

        3.运行后,得到了错误的结果。

        4.运行后,得到了正确的结果,但是在大量、多次运行后,出现了错误的结果。

        (例1:多线程情况下,处理线程安全问题。例2:不同格式的输入数据,出现错误结果。)

1. Debug的步骤

1.添加断点。

2.启动调试。

3.单步执行。

4.观察变量和执行流程,找到并解决问题。

1.1 添加断点

在源码文件中,在想要设置断点的代码行的前面标记行处,单击鼠标左键出现红色圆点,就设置了一个断点。再次单机红色圆点行,就可以取消断点。

1.2 运行调试

单机臭虫,Debug调试运行代码,会停在断点位置。且在调试过程中,可以动态添加或取消断点。

1.3 调试工具按钮介绍

1. 步过:

        开始运行下一步代码,不是下一个断点。且不进入方法内部。

2. 步入、强制步入:

        开始运行下一步代码,且可以进入当前这一行代码调用的方法或构造器内部。

   区别

       步入:只能进入自己写的方法或构造器内部。

       强制步入:可以进入自己写的方法或构造器内部,也可以进入SDK定义的源码中的方法内部。

3. 步出:

        跳出当前这一行代码调用的方法、构造器、源码方法

4. 运行到光标处:

        直接跳到光标所在位置。如果中间有调试标记行,那还是会先进行调试行,再跳转。

5. 恢复程序:

        

        1. 如果后面没有断点,则结束调试,直接出结果。

        2. 如果后面有断点,则直接进入下一个断点位置。

6. 停止调试:

7.查看所有断点:

        显示整个程序执行过程中添加断点的位置。

 8. 显示执行点:

        显示当前代码正在执行哪一行的断点。

9. 静音断点:

        使得当前代码后面所有断点失效,一次执行到底。

2. 多种Debug情况介绍

2.1 方法断点

在方法上设置断点,显示红色菱形块。右键单机菱形块,可以看到监视。

方法输入:默认勾选,表示进入方法时,断点可以被唤醒。

方法退出:需手动勾选,表示在方法退出时,断点也被唤醒。

方法的覆盖:

子类调用父类方法的时候,如果父类方法中方法断点,则子类运行调试时一样会进入父类方法停留调试。

例如,我们进入源码,把源码某个方法设置断点,那么,调试代码中调用这个方法的时候,就会出现断点调试。

2.2 字段断点

在类的属性声明上打断点,默认对属性的修改操作进行监控。每次修改这个属性,都会停留。

当勾选“字段访问”时,每次获取(例如打印)这个变量值,调试也会停留。

2.3 条件断点

设置断点之后,写上执行这个断点的条件。不满足条件的时候,断点不会执行。

2.4 异常断点

对异常进行跟踪,如果程序出现指定异常,程序就执行断点,自动暂停。

例如:设置出现空指针异常,就打断点。

操作:点击查看所有断点按钮,添加断点,选择Java异常断点,搜索空指针异常进行添加,看到已勾选这个断点,点击完成。下次出现这个异常,异常那一行就会出现闪电标识的断点。

2.5 线程调试

挂起线程,输入条件,执行调试到满足该条件的线程,就会暂停。

2.6 强制结束(强制返回)

调试过程中已经发现问题,不希望程序继续执行。

可以选择强制结束(Force Return),然后点击恢复恢复程序,就直接结束了。

但是,如果在程序正在调用方法,方法需要一个返回值才能结束,就会出现

这就比较麻烦了,写不出对的返回值,就只能继续执行完这个方法。

2.7 自定义调试数据视图

在调试面板的空白处右键,选择自定义数据视图。

出现这个框:

例如:

2.8 常见问题

问题:使用Step into(步入)时,会出现无法进入源码的情况,怎么办?

方案1:使用force step into(强制步入)。

方案2:点击进入如下页面,把java.*javax.*取消勾选。(不建议

使得步入和强制步入完全一样,没有区别。

这篇关于IDEA的使用(三)Debug(断点调试)(IntelliJ IDEA 2022.1.3版本)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/184633

相关文章

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav