Может ли приложение Java обнаружить, что отладчик подключен?
Я знаю о параметрах запуска (jvm), чтобы ждать jvm до тех пор, пока не будет подключен отладчик. Это не то, что я имею в виду здесь.
Возможно ли, что внутри Java-кода также определить привязанность отладчика, чтобы я мог, например, напишите "script", который делает некоторые вещи, а затем в определенный момент заставит мое приложение ждать отладчика?
Ответы
Ответ 1
Нет. Параметры - это параметры JVM, и Javacode не выполняется перед подключением отладчика. Тем не менее, вы можете запустить приложение, а spinluop - на getter для переменной, которую вы установили из отладчика, чтобы ваше приложение продолжалось.
Ответ 2
В зависимости от того, что вы хотели бы сделать, было бы полезно изучить onthrow
JDWP-подпараметр. Я на самом деле не пробовал это;-), но похоже, что вы можете создать специальный тип исключения, который вы бросаете и захватываете для запуска JVM-подвески. Как показано в связанных примерах, объединение с launch
может обеспечить некоторые интересные альтернативы. Конечно, логика/рабочий процесс отличается от того, что вы выразили, но это о чем подумать...
Ответ 3
см. Определите, находится ли Java-приложение в режиме отладки в Eclipse для обнаружения отладчика
Пользователь TimerTask может опросить для вложения