II. Eclipse 连接套接字模式下的 VM 调用示例(具体引用实践)
说明:不管采用哪种方式,调试的源代码都在eclipse的环境下
一.调试方式一(将目标应用程序作为调试的服务器,eclipse下的的debug启动配置作为调试客户机)
step一:调试器的后端设置
将远程调试的目标应用程序加入远程调试的启动参数,具体如下
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address="8000" -jar
test.jar
step二:调试前端设置
调试客户机的设置(即就是在eclipse的环境下新建一个java远程程序的debug启动配置项,配置项包括远程jvm的ip地址和端口号),配置项中指定了远程应用程序的目标 VM 地 址。
为此,单击 Run > Debug Configurations,然后在 Eclipse 菜单中双击 Remote Java Application。从最新创建的启动配置中为目标应用程序指 定 IP 和端口。为了在同一台机器上运行远 程应用程序,仅需将主机 IP 指定为 localhost 或 127.0.0.1。
图 4. 连接套接字连接的配置
注意在上图中,2中的选择为"standard(Socket Attach)",3中复选框不要打钩,否则停止debug调试时同时会终止远程的jvm,
切记切记!!!!
点击上图的按钮后,在eclipse的视图下回出现远程jvm的线程栈结构,如下图所示
step三.在eclipse的源代码程序中加入合适的断点,等待远程程序的动作后,自动会进入源代码的程序中
二.调试方式二 (将目标应用程序作为调试的客户机,eclipse下的的debug启动配置作为调试服务器)
step一. 调试器的后端设置:
将远程调试的目标应用程序(作为调试的客户机)加入远程调试的启动参数,具体如下
启动远程应用程序。清单 7 显示了如何将 Java 应用程序作为调试客户机并调用它,然后使用端口 8000 上的主机 127.0.0.1 的套接字将其连接到一个正在运行的调试器应用程序。
java -Xdebug -Xrunjdwp:transport=dt_socket,address=192.168.45.211:8000,suspend=y
-jar test.jar
step二.调试器的前端设置:
调试服务器的设置(即就是在eclipse的环境下新建一个java远程程序的debug启动配置项,配置项包括远程jvm的ip地址和端口号).为此,单击 Run > Debug Configurations,然后在 Eclipse 菜单中双击 Remote Java Application。从最新创建的启动配置中为调试的后端(目标应用程序)制定连接jvm的监听端口,具体如下所示.
单击 Eclipse Debug 按钮,状态栏将显示消息 “waiting for vm to connect at port 8000...”。看到这个消息后,
step三:Eclipse 使用套接字监听模式连接类型进行监听。必须先启动调试前端来监听特定的端口。