Может ли приложение Java обнаружить, что отладчик подключен?

Я знаю о параметрах запуска (jvm), чтобы jvm ждал, пока отладчик не будет подключен - это не то, что я имею в виду здесь.

возможно ли из кода Java также обнаружить вложение отладчика, чтобы я мог, например, написать "скрипт", который делает некоторые вещи, а затем в определенный момент заставить мое приложение ждать отладчика?

3 ответов


нет. Параметры-это параметры JVM, и никакой Javacode не выполняется до подключения отладчика. Однако вы можете запустить приложение и spinloop на геттере для переменной, которую вы установили из отладчика, чтобы ваше приложение продолжалось.


в зависимости от того, что вы хотели бы сделать, может быть стоит исследовать onthrow jdwp sub-option. Я на самом деле не пробовал это ;-) но похоже, что вы можете создать специальный тип исключения, который вы бросаете и ловите, чтобы вызвать подвеску JVM. Как показано в связанных примерах, в сочетании с launch может предоставить некоторые интересные альтернативы. Конечно, логика / рабочий процесс отличается от того, что вы выразили, но об этом стоит подумать...


посмотреть определите, находится ли приложение java в режиме отладки в Eclipse для обнаружения отладчика

вы можете использовать TimerTask для опроса для вложения