在I组的时候经常使用java远程调试的功能,觉得用起来很方便。
这两天在新的环境中重新配置了这个功能,经过gongle,baidu一番后,也有些心得,分享一下:
1, 要使用java remote debug功能,只需要在所调试代码对应的JVM启动的时候加入以下参数:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
其中"address=8000"指定了Eclipse attach的端口,在Eclipse中设置代码运行server的ip及这个监听端口之后就可以在Eclipse中进行远程调试了。
2, 要保证所运行的代码与Eclipse本地的代码是一致的,不然设置的断点会不起作用。
3, 如果使用ant对java代码进行编译的话,要在build.xml中设置debug属性为打开。
4, 在Eclipse中设置断点的时候,断点的图标有时候不太一样,仅仅为小圆圈的断点只是表明你设置了这个断点,当在Eclipse中打开远程调试模式之后,如果该小圆圈的左下角多了一个小勾,那就表明这个断点被"installed"了,代码运行到这个位置的时候会停住,如果小圆圈左下角没有出现这个小勾,那么这个断点在代码运行的时候不会起作用,就是说代码不会停住。
引起小勾不出现的原因可能会是 (1), 代码编译的时候没有打开debug选项。 (2), 代码编译的时候为了防止别人反编译,进行了混淆处理。
我在今天的调试中就碰到了第二种情况,将编译时的混淆功能关掉之后才能进行远程调试,感觉java代码的混淆真是双刃剑啊。
在eclipse的帮助中搜索JDT icons可以看到所有图标的含义。
Wednesday, April 23, 2008
java remote debug
Posted by
skywalkman
at
4/23/2008 09:50:00 PM
Labels: work
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment