首页   快速返回

tomcat8.5启动过程远程调试     所属分类 tomcat
一般的调试

./catalina.sh jpda start
export JPDA_ADDRESS=8000

eclipse 
project 右键  debug as / debug configurations / remote java application

JPDA   Java Platform Debugger Architecture


tomcat 启动过程 远程调试 需要 使用以下参数

JAVA_OPTS="$JAVA_OPTS -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9061"

server=y
等待客户端连接后再运行jvm

-XDebug               启用调试。
-Xnoagent             禁用默认sun.tools.debug调试器。
-Djava.compiler=NONE  禁止 JIT 编译器的加载。
-Xrunjdwp             加载JDWP的JPDA参考执行实例。
transport             用于在调试程序和 VM 使用的进程之间通讯。
dt_socket             套接字传输。
server=y/n            VM 是否需要作为调试服务器执行。
address=3999          调试服务器的端口号,客户端用来连接服务器的端口号。
suspend=y/n           是否在调试客户端建立连接之后启动 VM 。


新建一个标准maven web 工程
增加 tomcat嵌入式 jar包依赖
tomcat.embed.version 8.5.0
org.apache.tomcat.embed
   tomcat-embed-core
   tomcat-embed-jasper
   tomcat-embed-logging-juli
   
   
org.apache.catalina.startup.Bootstrap  main 方法打上端点

部署一个tomcat
conf/server.xml  增加context 

<Context path="/" docBase="/Users/dugang/fun/hellocode/project/tomcatdebug/src/main/webapp/" reloadable="true"> </Context>
 
catalina.sh 增加
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9061"

启动 tomcat ,等待调试客户端连接

eclipse 工程 远程调试tomcat,启动

进入 Bootstrap main 方法设置的断点

其他服务端启动过程调试都可以采用此种方式

上一篇     下一篇
tomcat8.5类加载机制

tomcat8.5嵌入式启动

tomcat8.5架构概述

tomcat8.5 jsp编译过程

XML解析之Digester

tomcat8.5启动过程调试