#java #eclipse #debugging #break #eclipse-jdt
#java #eclipse #отладка #прервать #eclipse-jdt
Вопрос:
Как прервать (приостановить) программу Java в Eclipse?
Я не говорю о точках останова. Я говорю о случайной приостановке программы, не зная, что она выполняет в данный момент, как в Visual Studio.
Комментарии:
1. вы имеете в виду приостановку процесса?
2. Да, я не смог найти кнопку паузы…
3. Просто из любопытства, почему вы хотели бы это сделать? Потому что это звучит как особенно странная стратегия для отладки кода.
4. Я предполагаю, что это мог бы быть неплохой способ сбора статистики о том, в каких классах находится код при запуске. Естественно, я бы предположил, что она тратит много времени на ввод-вывод.
5. @edalorzo: Да, это именно то, что сказал @Edwin. (На самом деле, человека, для которого я это делал, тоже зовут Эдвин, ха-ха ..) Это для определения узких мест в коде без необходимости профилирования.
Ответ №1:
Предполагая, что вы запустили программу в режиме отладки, вы можете вручную переключиться на перспективу отладки.
Оттуда, на панели отладки (которая обычно показывает вам потоки и расположение стека), нажмите кнопку паузы (которая выглядит как желтая кнопка паузы видеомагнитофона).
Запуск кода через средство запуска отладки является обязательным требованием, поскольку оно инициализирует JVM аргументами для включения JDI (или интерфейса отладки Java). Этот интерфейс может быть маршрутизирован через сети, что позволяет выполнять удаленную отладку на встроенных устройствах.
В сценарии Eclipse программа Eclipse при отладке взаимодействует с дочерним процессом JVM через JDI, что позволяет приостанавливать, выполнять пошаговые действия и вообще отслеживать свой путь по программе.
— Хорошо, у вас возникли проблемы с поиском, я расскажу вам все с точки зрения «верхнего меню» —
Run->Debug (or F11)
Window->Open Perspective->Debug
Run->Suspend
Если вам нужен лучший способ остановить только «основной» поток, выберите (в окне отладки в верхнем левом углу экрана) «Поток [основной]» перед приостановкой. В противном случае вы остановите все потоки в JVM.
Комментарии:
1. Я не смог ее найти, и я полагаю, что я был в перспективе отладки… позвольте мне попробовать еще раз…
2. Для настоящей олдскульной отладки есть также jdb!
3. @Mehrdad, Хахахаха, я действительно не ожидал, что ты согласишься на предложение jdb. Я добавил несколько указаний «верхняя строка меню», поскольку мне показалось, что у вас возникли проблемы с поиском маленьких кнопок всплывающей подсказки.
4. Черт возьми, да, я этого не делал. 😛 И да, инструкции очень помогли, спасибо!
Ответ №2:
Запустите программу в конфигурации отладки (ну, не совсем обязательно), перейдите в режим отладки и там просто выберите поток, который вы хотите приостановить, и нажмите приостановить.
Это будет работать просто отлично, хотя, если быть точным, я думаю, что это все равно будет приостанавливаться только в точках защиты (хотя это вряд ли имеет значение, поскольку их в любом случае более чем достаточно)