是否有一种编程方式可以在正在运行的JVM实例中打开调试?我正在寻找一个可以生成运行JVM的API,一个调试服务器。 API将相当于
-Xdebug -Xrunjdwp:transport=dt_socket,address=<host:port>,server=y,suspend=n.
答案 0 :(得分:1)
这是不可能的。 JVM必须从一开始就知道它处于调试模式。它的运行速度稍慢,但是为外部进程提供调试信息和断点,这在JVM已经启动时是不可能的。
答案 1 :(得分:1)
您可以使用Visual VM附加到任何正在运行的JVM。请务必下载1.3.2版并安装所有插件。
答案 2 :(得分:0)
提问者引用的调试端口用于源代码调试,例如使用Eclipse调试器。 VisualVM的端口是JMX端口,它接受一组不同的JVM选项。但也有例外:JRockit的Mission Control使用jdwp端口而不是JMX端口。
是的,您可以在代码中动态加载JMX调试器。它很复杂但OSGI可以动态加载这个我相信。 For example, here is a reference to Jetty project doing this.