(一)观察虚拟机的参数
eclispse通过debug模式启动其他虚拟机,会为该虚拟机额外添加两个启动参数-agentlib:jdwp和-ea
(1)-agentlib:jdwp 参数可让虚拟机被调试
(2)-ea 参数让虚拟机开启断言检查
![](https://img.haomeiwen.com/i9789206/2e7d592af6772b55.png)
-agentlib:jdwp=
transport=dt_socket,suspend=y,address=localhost:48494
(二)关于jdwp
jdwp是 Java Debug Wire Protocol 的缩写,意为java调试时的通讯协议,它定义了
调试器和被调试的java虚拟机之间的通信协议。
调试器和目标主机在不同的进程中运行,通过传输jdwp的数据包,调试器可以获取目标虚拟机的运行状态并控制目标虚拟机上java程序的执行。
![](https://img.haomeiwen.com/i9789206/211911d538c3b560.png)
(三)关于调试器:eclipse
eclipse 本身就是一个调试器,所以可以调试本地或远程的Java虚拟机,当然前提是调试器要有一份远程虚拟机上的源码副本。
个人觉得Java调试体系强大在于:
1、调试器可断点调试远程虚拟机
2、调试器可热交换代码到远程虚拟机
网友评论