熟练使用IDEA的断点调试(Breakpoint),大大提升你调试代码的效率(行断点、属性断点、异常断点、条件断点、远程debug...)【享学Java】(下)

简介: 熟练使用IDEA的断点调试(Breakpoint),大大提升你调试代码的效率(行断点、属性断点、异常断点、条件断点、远程debug...)【享学Java】(下)

断点参数


但是同理,它也提供一个特有的断点参数:


  • Notification:

- “Catch excetion”:程序在捕获(Try Catch)这个异常时激活断点

- “Uncatch excetion”:不catch捕获异常时激活断点


小细节:对于不同类型的断点,打桩后我们看到的图标也是有差异的,如图:

image.png

关于IDEA的远程调试(远程Debug)


远程调试是调试分布式系统的一个利器。因为现在都以微服务部署,你不可能在本地同时启动N个服务来做本地调试。

更重要的是如果测试时候测出发现你的bug,这时候你若想定位问题,通过远程调试直接连接到测试服务(甚至是线上服务)不失为一种最为高效的解决方案,并且它还能有非常好的保护现场的辅助能力~


启动远程调试主要分两步:

image.png

  1. 第一步:要让远程服务器运行的代码支持远程调试,也就是启动的时候必须加上特定的JVM参数:

1. java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=${debug_port} demo.jar (适用于JDK8以上)

2. java -Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=${debug_port} demo.jar(适用于JDK8以下)


   2.第二步:idea使用remote链接远程端口(注意ip:port要对应上):”Edit Configurations” -> “Remote” 配置好后debug启动~~~


当你看到控制台这样的字样,就证明你链接成功了,进而你可以像调试本地代码一样随意的打各种类型的断点进行调试了~

image.png


需要注意的是:远程调试时请确保你本地的代码和远程的一模一样。


Java平台调试体系架构(JPDA)和JDWP(Java Debug Wire Protocol):参考权威文档 JPDA 体系概览

以及 JDWP 远程命令执行漏洞


JDWP协议是个标准协议,我们的Tomcat是支持的,其实tomcat它的catalina.sh文件里有告诉你怎么开启这个端口:

image.png


对上面变量的解析代码如下(注意有些默认值):


image.png

传统Tomcat怎么开启呢


找到入口文件startup.sh,最后一句改为的start前面加上 jpda如下:

exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"


或者在catalina.sh中进行配置:

JPDA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005’


这样根据上面的脚本可知,判断第一个参数等于jpda,所以调试端口开放了。


嵌入式Tomcat怎么开启呢?(重要)

这里主要指的SpringBoot环境下如何开启呢?答案见上~


如果想深入了解Java调试,强烈给你推荐去这里看看:深入Java调试体系


总结


本文并没有介绍所有的断点参数,如对话框的右半部分的Catch class filter等等各种filter的参数,因为我觉得没太大的用~~~有兴趣的自行研究哈


另外本文讲述使用的IDE是IntelliJ IDEA,使用Eclipse的用户可以仿照着执行~

相关文章
|
监控 测试技术 开发者
IDEA项目调试你都会用了么,快看看是否有你不知道的调试技巧
在IntelliJ IDEA中,熟练运用调试工具可显著提升开发效率。通过设置断点、单步执行、变量监控等功能,快速定位问题并优化代码性能。此外,掌握多线程调试、异常处理及远程调试技巧也至关重要。为提高效率,建议合理使用条件断点、快捷键与日志监控,同时不断学习总结经验。若觉得有用,别忘了点赞收藏!
IDEA项目调试你都会用了么,快看看是否有你不知道的调试技巧
|
Linux Windows
IDEA如何查看所有的断点(Breakpoints)并关闭
【10月更文挑战第15天】在 IntelliJ IDEA 中,可以通过以下步骤查看和关闭所有断点: 1. 查看所有断点: - 打开断点窗口:菜单栏选择 “View” -> “Tool Windows” -> “Debug”,或使用快捷键 “Alt+2”(Windows/Linux)/“Command+2”(Mac)。 - 在断点窗口中,可以看到所有设置的断点列表,包括文件、行号等信息。 2. **关闭断点**: - 单个断点关闭:在断点窗口中,点击断点左侧的红点图标即可关闭。
6864 2
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
546 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
搜索推荐 Java 数据库连接
Java|在 IDEA 里自动生成 MyBatis 模板代码
基于 MyBatis 开发的项目,新增数据库表以后,总是需要编写对应的 Entity、Mapper 和 Service 等等 Class 的代码,这些都是重复的工作,我们可以想一些办法来自动生成这些代码。
598 6
|
Java Linux 开发工具
IDEA中git提交前如何关闭code analysis以及开启格式化代码
【10月更文挑战第12天】本文介绍了在 IntelliJ IDEA 中关闭代码分析和开启代码格式化的步骤。关闭代码分析可通过取消默认启用检查或针对特定规则进行调整实现,同时可通过设置 VCS 静默模式在提交时跳过检查。开启代码格式化则需在 `Settings` 中配置 `Code Style` 规则,并通过创建 Git 钩子实现提交前自动格式化。
6717 3
|
Java 应用服务中间件 Maven
【终极解决方案】IDEA maven 项目修改代码不生效。
【终极解决方案】IDEA maven 项目修改代码不生效。
2593 1
|
Linux Windows
IDEA如何查看每一行代码的提交记录(人员,时间)
【9月更文挑战第24天】在IntelliJ IDEA中,可通过安装GitToolBox插件并利用其功能来便捷地查看每行代码的提交记录,包括提交者、时间和提交信息。具体操作为:首先安装GitToolBox插件,然后在代码编辑区域将鼠标悬停于目标代码行以查看简要信息,或使用快捷键打开“Version Control”窗口查看详细提交历史。
8554 2
|
数据库 开发者
IntelliJ IDEA调试技巧:提升你的调试效率
调试是软件开发中不可或缺的一部分,而IntelliJ IDEA提供了一套强大的调试工具,可以帮助开发者更高效地定位和解决问题。本文将分享一些高手必会的IDEA调试技巧,让你在调试时如虎添翼。
442 0
|
IDE Java 开发工具
IntelliJ IDEA高效调试技巧:提升你的调试效率
在Java开发中,调试是开发过程中不可或缺的一部分。IntelliJ IDEA作为一款强大的IDE,提供了丰富的调试功能,帮助开发者更高效地定位和解决问题。本文将分享一些高手必会的IDEA调试技巧,让你的调试工作事半功倍。
381 0
|
XML 移动开发 监控
【优雅代码】09-idea断点、插件、模板合集
用好idea可以辅助程序员更快的开发,从效率和bug上都能取得更优秀的成绩
【优雅代码】09-idea断点、插件、模板合集

热门文章

最新文章