4

是否有一种编程方式可以在正在运行的 JVM 实例中打开调试?我正在寻找一种 API,它可以使运行的 JVM 成为调试服务器。API 相当于

-Xdebug -Xrunjdwp:transport=dt_socket,address=<host:port>,server=y,suspend=n. 
4

3 回答 3

2

您可以使用Visual VM附加到任何正在运行的 JVM 。请务必下载 1.3.2 版并安装所有插件。

于 2011-08-04T00:39:41.827 回答
2

提问者所指的调试端口用于源代码调试,例如使用 Eclipse 调试器。VisualVM 的端口是 JMX 端口,它采用一组不同的 JVM 选项。但也有例外: JRockit 的 Mission Control 使用 jdwp 端口而不是 JMX 端口。

是的,您可以在代码中动态加载 JMX 调试器。它很复杂,但我相信OSGI可以动态加载它。 例如,这里是对 Jetty 项目执行此操作的参考。

于 2013-03-03T19:15:09.590 回答
0

这是不可能的。JVM 必须从一开始就知道它处于调试模式。它的运行速度会慢一些,但会为外部进程提供调试信息和断点,这在 JVM 已经启动时是不可能的。

于 2011-08-03T23:52:30.683 回答