#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:
Заметно снижает производительность, однако только в том случае, если подключен отладчик, и это возможно только в том случае, если скомпилировано для разрешения отладки (необязательно).