Java程序调试:Eclipse远程调试

在上一篇《Java程序调试:启动命令解析》中,解释了用命令行在 debugging 模式下启动应用的方法,以及各调试配置参数的含义。後面用 jdb 这个工具来连接要调试的VM,尝试了简单的调试。

但是现在一般都是用IDE来开发Java项目,自然通过IDE来连接目标VM更易用,也更方便观察程序状态。现在记录下用Eclipse进行调试的过程。

本地VM进程的调试

这个过程其实是通过 debugger 客户端启动所要调试的Java应用(即开启了一个 launching connector)。
接下来的操作流程:

  1. 点开Eclipse菜单栏中的“Run”,选择“Debug Configurations”,打开Debug配置页面。

  2. 在“Debug Configurations”页面中,右击“Java Application”->new,新建一个Java应用调试配置:
    Java程序调试:Eclipse远程调试_第1张图片

  3. 在“Main”标签页下,在“Project”中选择要调试的应用,在“Main class”中选择应用的main函数所在的类。其他程序及VM启动参数在“Arguments”标签页中进行配置。

  4. 完成上述配置後,点击“Debug”,就可以开始调试了。

远程VM进程的调试

进行远程VM的调试,首先需要以debugging模式启动远程的VM进程,启动方式见《Java程序调试:启动命令解析》。远程的VM以server=y,suspend=n启动完成后,得到远程服务器的IP以及目标VM监听的端口

接下来的操作流程:

  1. 点开Eclipse菜单栏中的“Run”,选择“Debug Configurations”,打开Debug配置页面。

  2. 在“Debug Configurations”页面中,右击“Remote Java Application”->new,新建一个远程Java应用调试配置:
    Java程序调试:Eclipse远程调试_第2张图片

  3. 在“Connect”标签页中,在“Project”中选择要调试的应用(要与远程VM中启动的应用相同),在“Connection Type”中选择“Standard(Socket Attach)”,然後在“Connection Properties”中输入获取的远程VM的IP与端口号。
    关于Connection Type的说明:
    * Standard(Socket Attach):主动连接远程的VM
    * Standard(Socket Listen):监听来自远程VM的连接
    由于远程VM是以server=y启动的,所以需要本地的debugger进程连接远程VM。

  4. 完成上述配置後,点击“Debug”,就可以开始调试了。

参考资料

JPDA 利用Eclipse和Tomcat进行远程调

你可能感兴趣的:(Java,Eclipse)