有时候本地断点调试不能完全反映出生产环节的异常:
比如服务之间的依赖,等等。
?
所以,远程断点调试给予了解决集成环境BUG的一个非常有利的工具。
?
在Eclipse下面,做如下工作:
打开Eclipse,点击左上角的debug按钮,如图:
?
?
?
Project:选择你要debug的项目,Host:输入你的远程IP,Port:远程调用端口。
如何知道远程端口,通过进入你的远程虚拟机的命令行,输入jps -v 命令,查找这一行?
-Xrunjdwp:transport=dt_socket,server=y,address=52002,suspend=n?
?
其中52002就是你远程虚拟机的调用接口。
如果找不到,那是因为你的远程虚拟机tomacat或jboss配置没有支持remote debugging,需要在给JVM加上如下的启动参数:?
-Xdebug -Xrunjdwp:transport=dt_socket,address=52002,server=y,suspend=n?
adderss由你自己定的。
?
下面,我们就在Tomcat的环境上,进行远程调试的配置:
方法一: 修改配置文件catalina.bat , startup.bat
1. 在环境变量中添加 jpda_address=8000, 也可以加到startup.bat 文件
@echo off下面如:set "JPDA_ADDRESS=8000"
2. 打开catalina.bat,在文件中找到" set JPDA_TRANSPORT",把它的值设为dt_socket
3. 打开startup.bat, 在文件中找到"call "%EXECUTABLE%" start %CMD_LINE_ARGS%",
改为" call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%",
也就是在start前加jpda.
4. 在eclipse debug中选择" Remote Java Application" ,新建一个批port为jpda_address的值,
?
方法二: 通过GUI的"Configure Tomcat ".
b) Select the Java tab
c) Into the Java Options include (substituting the correct locations)
-Xdebug
-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
-Dcatalina.home=c:\tomcat
-Djava.endorsed.dirs=c:\tomcat\common\endorsed
-Djava.io.tmpdir=c:\tomcat
NB: These are all on separate lines, with a <CR> at each EOL
d) Select the Startup tab
e) Into the Arguments section include:
jpda
start
NB: These are all on separate lines, with a <CR> at each EOL
其中要注意<CR>
?
附件会包含我修改Tomcat的所有配置文件