Java Remote Debug

2023-11-07

《Java Remote Debug》

 

简介

如果是本地调试,那么在IDE工具(比如Eclipse)的帮助下,是非常容易的。但是如果想对部署在测试/生产环境中的程序进行调试时,你会怎么办呢?在这种情况下,源码已经被编译为中间代码,因此本地调试肯定是不行的,庆幸的是,JVM为开发者提供有远程调试参数,也就是说,我们可以利用这个特性,在本地的IDE工具中调试部署在远端的程序。

 

一、开启remote debug模式

每一个程序都寄宿在独立的JVM中,那么Java程序的远程调试,其实我们可以理解为多个JVM进程之间的TCP通信。如果希望你的程序支持远程调试,那么你需要在JVM启动时支持并开启debug模式。

Java7之前可以使用如下参数:

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=7001,suspend=n

   

Java7之后可以使用如下参数:

java -agentlib:jdwp=transport=dt_socket,address=7001,server=y,suspend=n

 

简单解释下上述参数,server=y,表示支持监听debug client端的请求;address=7001,表示JVM进程之间的通信端口;suspend=y,表示debug client与debug  server成功建立会话之后再启动JVM,如果为n,则反之。

 

二、执行remote debug

在开始remote debug之前,我们首先需要在本地源码指定位置上标记断点。笔者以eclipse为例,在菜单栏Debug Configgurations-->Remote Java Application中找到如下页面,如下所示:

 

当配置好debug client与debug server之间的会话信息后,就可以开始remote debug了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Remote Debug 的相关文章

随机推荐