Java JVMTI 不能与 -Xdebug -Xrunjdwp 一起工作
在过去的4个小时里,我试图在必须远程运行的Tomcat实例上设置Eclipse TPTP内存分析(即不在Eclipse中)。根据 TPTP 和代理控制器文档,这应该是可能的。
我根据网站上的说明将TPTP组件(4.6.0)与Agent Controller一起安装到我的Eclipse(伽利略)工作台中。为了启用代理,我将以下选项添加到启动 Tomcat 实例的命令行中:
-agentlib:JPIBootLoader=JPIAgent:server=enabled;HeapProf:allocsites=true
并将以下目录添加到 PATH 的前面:
D:\dev\tools\ac\plugins\org.eclipse.tptp.javaprofiler
D:\dev\tools\ac\bin
尝试启动Tomcat时,我一直收到以下错误消息:
ERROR: JDWP unable to get necessary JVMTI capabilities. ["debugInit.c",L279]
我做了很多谷歌搜索,但没有发现任何相关的东西;我尝试重新安装TPTP和各种版本的代理控制器。
最后,问题竟然是我开始使用“jpda”选项启动Tomcat,catalina.bat将其转换为
-Xdebug -Xrunjdwp:transport=.....
删除“jpda”命令参数导致 JVMTI 开始工作。
所以,问题是:我在任何搜索过程中都没有发现任何迹象表明JVMTI代理与调试不兼容。有人可以解释一下发生了什么,以及为什么JVMTI + JDWP不是一个有效的设置吗?