IntelliJ IDEA 进行远程调试技巧

栏目: IT技术 · 发布时间: 4年前

内容简介:做积极的人,而不是积极废人

点击上方 匠心零度 ,选择“ 设为星标

做积极的人,而不是积极废人

IntelliJ IDEA 进行远程调试技巧

这一篇介绍如何使用 Intellij IDEA 实现远程 debug。

项目中经常会有出现这样的问题,会令 程序员 抓狂:关键代码段没有打印日志,本地环境正常生产环境却又问题… 这时候,远程 debug 可能会启动作用。

1 准备用于 debug 的代码

准备一个 RestController 用于接收请求,最后可以通过本地断点验证是否成功开启了远程 debug

@RestController
public class TestController {

@RequestMapping("/test")
public Integer test() {
int i = 0;
i++;
i++;
i++;
i++;
i++;
return i;
}

}

项目使用 springboot 和 maven 构建,依赖就省略了,使用 springboot 提供的 maven 打包插件,方便我们打包成可运行的 jar。

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>

2 使用 maven 插件打包成 jar

IntelliJ IDEA 进行远程调试技巧
maven 插件

maven 插件

3 准备启动脚本

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=64057 remote-debug-1.0-SNAPSHOT.jar
-
transport=dt_socket,server=y,suspend=n,address=64057

4 配置 IDEA

IntelliJ IDEA 进行远程调试技巧

IDEA 配置

IDEA 配置

  1. 与脚本中的指令完全一致

  2. 远程 jar 包运行的 host,由于我的 jar 运行在本地,所以使用的是 localhost,一般线上环境自然是修改为线上的地址

  3. 与远程 jar 包进行交互的端口号,idea 会根据指令自动帮我们输入

  4. 选择与远程 jar 包一致的本地代码

请务必保证远程 jar 包的代码与本地代码一致!!!

5 验证

保存第 4 步的配置后,先执行脚本让远程的 jar 包跑起来,再在 IDEA 中运行 remote-debug

IntelliJ IDEA 进行远程调试技巧

运行 remote-jar

运行 remote-jar

如上便代表连接运行成功了

在本地打上断点,访问 localhost:8080/test

IntelliJ IDEA 进行远程调试技巧

远程 debug 信息展示

远程 debug 信息展示

可以在本地看到堆栈信息,大功告成。一行指令便完成了远程调试。

END

如果读完觉得有收获的话,欢迎点【好看】,关注【匠心零度】,查阅更多精彩历史!!!

IntelliJ IDEA 进行远程调试技巧

让我“ 好看 ”  IntelliJ IDEA 进行远程调试技巧


以上所述就是小编给大家介绍的《IntelliJ IDEA 进行远程调试技巧》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深度探索C++对象模型

深度探索C++对象模型

斯坦利•B.李普曼 (Stanley B. Lippman) / 侯捷 / 电子工业出版社 / 2012-1 / 69.00元

作者Lippman参与设计了全世界第一套C++编译程序cfront,这本书就是一位伟大的C++编译程序设计者向你阐述他如何处理各种explicit(明确出现于C++程序代码中)和implicit(隐藏于程序代码背后)的C++语意。 本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承。这本书让你知道:一旦你能够了解底层实现模......一起来看看 《深度探索C++对象模型》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具