JavaRush/Курсы/Java Collections/IDEA: watch, quick watch

IDEA: watch, quick watch

Открыта

— Но это еще не все. Как ты думаешь – для чего был придуман режим отладки?

Это риторический вопрос.

Самое интересное в том, что на каждом шаге в дебаге ты можешь смотреть значения всех переменных, которые есть! Включая локальные переменные методов, аргументы, да фактически все что угодно.

Когда ты запускаешь режим отладки и делаешь остановку, снизу появляется специальная панель:

IDEA: watch, quick watch - 1

Зеленым выделен раздел переменных, в нем видны все локальные переменные
Красным выделено окно watch – в него можно добавить переменные самому
Оранжевым – список нитей. Прямо под ним – стек-трейс текущей нити

Сейчас я нажму F8 три раза, и в среднем окне появятся значения двух новых переменных – sum5 & sum7.

А в правом нижнем окне я нажму на плюсик и добавлю сразу выражение sum5+sum7.

Вот что у меня получилось:

IDEA: watch, quick watch - 2

В центре внизу мы видим значения переменных
Справа внизу мы видим текущее значение выражения sum5+sum7

Окно Watches удобно использовать, когда переменные имеют длинные и сложные имена, например:

this.connection.getProvider().getRights().get("super")

— Круто! Классные штуки.

— Кроме Watches есть еще Quick Watches. Ты можешь узнать значение любой переменной, просто поднеся к ней мышку. Подержи мышку над переменной пару секунд и во всплывающем окне можно будет увидеть ее значение.

IDEA: watch, quick watch - 3

И самое интересное. Значения переменных можно менять!

Просто кликаешь правой кнопкой мыши на переменной в Watches или Variables, выбираешь пункт SetValue и вводишь новое значение. Или просто жмешь F2.

Вот как это выглядит у меня:

IDEA: watch, quick watch - 4

Можно задать переменной любое значение, ссылку можно обратить в null,…

Затем жмем Enter и все. У переменной теперь новое значение.

— Ничего себе, а я и половины этого не знал. Какой полезный урок.

Комментарии (40)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Denis Odesskiy Full Stack Developer
3 апреля 2025, 22:15
@"— Ничего себе, а я и половины этого не знал. Какой полезный урок." У современных LLM довольно высок уровень "забывчивости", ну когда какой-нибудь чатГПТ как бы забывает тот контекст в котором шла ваша беседа, видимо у Амиго с тех пор прошивка и не менялась...
4 мая 2024, 17:38
Вообще не понимаю пользы от дебагера, мне на много проще самому код просмотреть и понять смысл , чем дебагом пользоваться
LuneFoxJava Developer в BIFITExpert
23 мая 2024, 16:33
Иногда полезно остановить программу в какой-либо точке, и оглядеться, что же сейчас происходит, какие аргументы в метод прилетают, какие объекты какими полями заполняются. Можно сделать evaluate expression в точке останова и попробовать изменить какую-то переменную или выполнить кусок кода перед дальнейшим запуском, чтобы подтвердить/опровергнуть свои предположения. Вариантов масса, зачем он нужен.
Shhopat
Уровень 51
17 января 2025, 17:05
значит ты не умеешь им норм пользоваться.
Denis Odesskiy Full Stack Developer
3 апреля 2025, 21:48
@"Вообще не понимаю пользы от дебагера, мне на много проще самому код просмотреть и понять" ага особенно когда в проекте 20 сторонних либ и стопятсот вложенных методов и калбеков в этих либах. Какой-нибудь проект под андроид с гугловскими либами попробуйте сделать, например какой-нибудь todo лист с напоминанием по будильнику, раскажите потом как вы без дебагера обошлись😉
Anemon
Уровень 13
Expert
25 апреля 2025, 19:52
Имхо, не умеешь просто потому, что толком ничем сложным не занимался. Дебаггер сверх полезен, его полезность просто невозможно не оценить
Kasar
Уровень 1
22 июля 2023, 07:40
— Ничего себе, а я и половины этого не знал. Какой полезный урок. Похоже у Амиго проблемы с памятью...
SomeBody098веник в бане
3 декабря 2024, 16:26
404 - data debag amigo not found
LuneFoxJava Developer в BIFITExpert
17 марта 2022, 17:25
Поделюсь ещё одной фишкой, которую узнал только что (вот же я слоупок). Можно делтать горячую подмену классов прямо во время того, как программа работает! Например, хочется поправить одну циферку (например, сместить что-то на пиксель или поправить вывод) без необходимости перезапуска всего приложения с самого начала. Для этого мы кликаем правым ухом мышки прямо в код изменённого файла и выбираем Compile And Reload File. Сколько часов потраченного времени мне бы это сэкономило, эх... Каждый раз перезапускал программы, как дурак. А оказывается, можно их переписывать прямо вживую во время выполнения. Волшебная опция появляется только в режиме запуска с дебагом. Можно забиндить на клавишу (я поставил на Alt+R).
Андрей
Уровень 51
23 мая 2024, 05:06
ого спасибо чел
Anemon
Уровень 13
Expert
25 апреля 2025, 19:59
А можно поподробнее, пожалуйста? Тоже есть проблемки с "графикой" и приходится вечно поправлять всё, но не понял как это делается
LuneFoxJava Developer в BIFITExpert
28 апреля 2025, 17:27
На каком шаге у тебя проблемы?
Anemon
Уровень 13
Expert
2 мая 2025, 13:13
Не могу найти самую фичу "кликаем правым ухом мышки прямо в код изменённого файла и выбираем Compile And Reload File", не вижу этого просто. Что-то не так делаю, но не понимаю что именно
LuneFoxJava Developer в BIFITExpert
7 мая 2025, 15:04
Во время дебага жмешь?
Anemon
Уровень 13
Expert
9 мая 2025, 22:50
Конечно
LuneFoxJava Developer в BIFITExpert
16 мая 2025, 00:27
Ну, по идее, должен быть такой пункт меню. Если не появляется, спроси у дипсика, почему.
Anemon
Уровень 13
Expert
18 мая 2025, 07:31
Я смог! Спасибо огромное
рустам
Уровень 41
3 мая 2020, 05:12
Ребят, подскажите кто нибудь! Уже все облазил, не могу разобраться(( У меня не появляется окно watches. Только окно variables. Intelleg Idea 20.1 Как открыть окно watches?
Jaroslav Melnychenko
Уровень 41
15 мая 2020, 12:01
ЛПК на Variables и в списке выбери очки. https://www.jetbrains.com/help/idea/debug-tool-window.html
15 февраля 2021, 18:18
ivan дворник
23 июля 2023, 16:17
skrskr
Уровень 39
5 февраля 2020, 22:56
Вот про watches и quick watches
ДаниилSalesforce Developer в CustomertimesMaster
20 октября 2019, 10:32
Блин, всё-таки пару моментов я не знал)
Валентин
Уровень 35
7 октября 2019, 08:22
Лайфхак: офигеваешь - вспомни теорию относительности Для 39-го уровня учить дебаг слишком поздно. Для 29-го уже не настолько поздно А если учесть, что уровней может быть 60 (два модуля еще в работе), то дебаг как-раз на средине, перед жесткими задачами - в самый раз. P.S. Эйнштейн был явно самым офигевшим :)
АлексейBackend Developer в Neoflex
3 июля 2020, 17:58
Эти два модуля в работе уже 4 года) Не дождемся наверное
Java Developer
25 января 2021, 13:01
5й пошел
Dmitry NikolskyAndroid Developer в Яндекс
7 июля 2021, 18:29
Эти модули еще были в разработке, когда мой отец тут занимался, а тогда вообще был 2013-2014, так что все 7 лет уже есть
Andrii Gorshunov
Уровень 41
Expert
23 апреля 2019, 18:10
Амиго мог не знать про дебаг :) его вроде не просили раньше об этом
King
Уровень 30
20 апреля 2019, 07:47
39 уровень, а мне рассказывают про кнопку "Debug". Я балдею просто. Karahanid всё правильно написал. Чем выше уровень, тем больше открываются глаза, что подход к обучению здесь не совсем верен. В курсе реально только первые 20 уровней доставляют, остальное дрочево.
skrskr
Уровень 39
5 февраля 2020, 22:55
Поэтому очень много людей с 25 уровнем, это интуитивно понятно. Думаю так даже лучше, тк практику тут лучше совмещать с книгой Шилда или Философией Джавы. В книге узнаёшь очень узкие нюансы, а здесь практикуешь борьбу с валидатором.