Java API для включения отладки в работающей JVM - PullRequest
3 голосов
/ 04 августа 2011

Есть ли программный способ включить отладку в работающем экземпляре JVM?Я ищу API, который бы сделал работающую JVM сервером отладки.API сделал бы эквивалент

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

Ответы [ 3 ]

1 голос
/ 04 августа 2011

Вы можете подключиться к любой работающей JVM, используя Visual VM . Обязательно скачайте версию 1.3.2 и установите все плагины.

1 голос
/ 04 августа 2011

Это невозможно. JVM должна знать с самого начала, что она находится в режиме отладки. Затем он работает немного медленнее, но предоставляет внешним процессам отладочную информацию и точки останова, что невозможно, когда JVM уже запущена.

0 голосов
/ 03 марта 2013

Порт отладки, на который ссылается спрашивающий, предназначен для отладки исходного кода, например, с помощью отладчика Eclipse. Порт для VisualVM - это порт JMX, который принимает другой набор параметров JVM. Однако есть исключения: Mission Control для JRockit использует порт jdwp, а не порт JMX.

И да, вы можете динамически загружать отладчик JMX в коде. Это сложно, но OSGI может загружать это динамически, я верю. Например, вот ссылка на проект Jetty, делающий это.

...