Java调试线协议(Java Debug Wire Protocol, JDWP) 可以用来调试Java应用(application)及小程序(applets)1。
调试的目标虚拟机(VM) 进程可以是本地的,也可以位于远程服务器上。两种调试场景的实现原理是一样的,只是配置不同而已。
Oracle的VM根据命令行选项来决定是否以及如何加载JDWP agent 进行 debug2。指定加载 JDWP agent 的方式有两种:
-
-agentlib:jdwp=<name1>[=<value1>],<name2>[=<value2>]...
例如:
-agentlib:jdwp=transport=dt_socket,server=y,address=localhost:8000,timeout=5000
-
-Xrunjdwp:<name1>[=<value1>],<name2>[=<value2>]...
例如:
-Xrunjdwp:transport=dt_shmem,address=mysharedmemory
下面详细叙述启动Java调试的过程。
1 以debugging模式启动应用
要使用JDWP