IDEA-断点、调试、远程JVM调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA-断点、调试、远程JVM调试相关的知识,希望对你有一定的参考价值。

参考技术A 应用场景:遍历时只想看满足某情况的断点。

IDEA断点不能一步步回退,只能回退到目标方法被调用的地方。

添加启动参数,下面举个例子( -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 是上面复制的):
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar ioewvsau-1.0.0.jar

# Jvm 远程调试配置

Jvm 远程调试配置

Idea 远程调试:# Idea 调试 Debug 技巧_爱码代码的喵的博客-CSDN博客_idea 逐行调试

Tomcat 配置远程调试

Linux系统

  • 编辑tomcat/bin目录下的catalina.sh文件
# 方案1
CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788"
# 方案2
JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8788'
  • taomcat/bin/startup.sh开始处中增加如下内容:
# 方案3 
declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788"   

Windows 系统

  • Tomcat安装目录bin下的启动脚本 startup.bat中增加如下配置
# 方案1
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788
# 方案2
set CATALINA_OPTS=-Xdebug  -Xrunjdwp:transport=dt_socket,address=8788,server=y,suspend=n
  • 启动Tomcat,首行出现监听端口8788则说明配置成功

Java -jar 启动

  • 启动的时候必须加上特定的JVM参数
-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=8788

java -jar -Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5005 log4j-test-0.0.1-SNAPSHOT.jar

检查调试端口是否打开

  • 调试端口开发说明配置生效,才能使用调试工具连接调试。

Linux系统

telnet 127.0.0.1 5001
nc -v 127.0.0.1 5001
netstat -aptn |grep -i 5001

Windows 系统

netstat -ano|findstr "5001"
telnet 127.0.0.1 5001

注意

  • 需要调试的代码必须和服务其部署的代码版本一致

Idea 远程调试

以上是关于IDEA-断点、调试、远程JVM调试的主要内容,如果未能解决你的问题,请参考以下文章

在IntelliJ IDEA中远程断点调试tomcat

es自定义分词器插件通过IntelliJ Idea进行远程调试

idea走断点的时候怎么显示程序的方法调用栈区

idea断点如何找集合中的值

[转]IDEA断点调试基础

Java IDEA断点调试