Java 远程 Debug for IDEA

调试jar包(server) # 在本地建立一个8000端口的服务,等待客户端连接,连接成功后,可进行debug调试

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -jar test.jar  

调试Tomcat服务(server)

JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"

调试jar包(client) # 去连接debug服务器,连接成功后可进行debug调试

java -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,suspend=y -jar remoting-debug.jar

调试Tomcat服务器(client)

JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,suspend=y"

在服务器上开启远程debug,在idea配置服务器的地址和端口并执行。
a.png

b.png

参数解释

-Xdebug是通知JVM工作在DEBUG模式下

-Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境。该参数同时了一系列的调试选项:

transport指定了调试数据的传送方式,dt_socket是指用SOCKET模式,另有dt_shmem指用共享内存方式,其中,dt_shmem只适用于Windows平台。

server参数是指是否支持在server模式的VM中.

onthrow指明,当产生该类型的Exception时,JVM就会中断下来,进行调式。该参数可选。

launch指明,当JVM被中断下来时,执行的可执行程序。该参数可选

suspend指明,是否在调试客户端建立起来后,再执行JVM。

onuncaught(=y或n)指明出现uncaught exception 后,是否中断JVM的执行.

参考

https://www.cnblogs.com/suntingme/p/7591350.html
https://www.cnblogs.com/Lawson/p/6188370.html

发表留言

如未标注转载则文章均为本人原创,转载前先吱声,未授权转载我就锤爆你狗头。

人生在世,错别字在所难免,无需纠正。