jsadebugd / jdb и запускает clear JVM

#java #debugging #jvm #jit #jdb

#java #отладка #jvm #jit #jdb

Вопрос:

Используя jsadebugd или jdb, можно отлаживать уже запущенные JVM, запущенные без каких-либо аргументов. Я не понимаю, как это возможно, потому что я думал, что JVM компилирует байт-код в машинном коде с помощью JIT, и его нельзя отладить.

Кто-нибудь может мне объяснить?

И как такая временная отладка влияет на производительность?

Комментарии:

1. Я не знал, что можно подключиться jdb к JVM, которая была запущена без специальных аргументов. Можете ли вы показать, как вы это делаете?

2. jsadebugd => jdb -подключаем sun.jvm.hotspot.jdi.SAPIDAttachingConnector:pid = 1234

Ответ №1:

Заметно снижает производительность, однако только в том случае, если подключен отладчик, и это возможно только в том случае, если скомпилировано для разрешения отладки (необязательно).