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

IDEA: watch, quick watch

Java Collections
9 уровень , 4 лекция
Открыта

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

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

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

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

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 Уровень 47
3 апреля 2025
@"— Ничего себе, а я и половины этого не знал. Какой полезный урок." У современных LLM довольно высок уровень "забывчивости", ну когда какой-нибудь чатГПТ как бы забывает тот контекст в котором шла ваша беседа, видимо у Амиго с тех пор прошивка и не менялась...
4 мая 2024
Вообще не понимаю пользы от дебагера, мне на много проще самому код просмотреть и понять смысл , чем дебагом пользоваться
LuneFox Уровень 41 Expert
23 мая 2024
Иногда полезно остановить программу в какой-либо точке, и оглядеться, что же сейчас происходит, какие аргументы в метод прилетают, какие объекты какими полями заполняются. Можно сделать evaluate expression в точке останова и попробовать изменить какую-то переменную или выполнить кусок кода перед дальнейшим запуском, чтобы подтвердить/опровергнуть свои предположения. Вариантов масса, зачем он нужен.
Shhopat Уровень 51
17 января 2025
значит ты не умеешь им норм пользоваться.
Denis Odesskiy Уровень 47
3 апреля 2025
@"Вообще не понимаю пользы от дебагера, мне на много проще самому код просмотреть и понять" ага особенно когда в проекте 20 сторонних либ и стопятсот вложенных методов и калбеков в этих либах. Какой-нибудь проект под андроид с гугловскими либами попробуйте сделать, например какой-нибудь todo лист с напоминанием по будильнику, раскажите потом как вы без дебагера обошлись😉
Anemon Уровень 13 Expert
25 апреля 2025
Имхо, не умеешь просто потому, что толком ничем сложным не занимался. Дебаггер сверх полезен, его полезность просто невозможно не оценить
Kasar Уровень 1
22 июля 2023
— Ничего себе, а я и половины этого не знал. Какой полезный урок. Похоже у Амиго проблемы с памятью...
SomeBody098 Уровень 51
3 декабря 2024
404 - data debag amigo not found
LuneFox Уровень 41 Expert
17 марта 2022
Поделюсь ещё одной фишкой, которую узнал только что (вот же я слоупок). Можно делтать горячую подмену классов прямо во время того, как программа работает! Например, хочется поправить одну циферку (например, сместить что-то на пиксель или поправить вывод) без необходимости перезапуска всего приложения с самого начала. Для этого мы кликаем правым ухом мышки прямо в код изменённого файла и выбираем Compile And Reload File. Сколько часов потраченного времени мне бы это сэкономило, эх... Каждый раз перезапускал программы, как дурак. А оказывается, можно их переписывать прямо вживую во время выполнения. Волшебная опция появляется только в режиме запуска с дебагом. Можно забиндить на клавишу (я поставил на Alt+R).
Андрей Уровень 51
23 мая 2024
ого спасибо чел
Anemon Уровень 13 Expert
25 апреля 2025
А можно поподробнее, пожалуйста? Тоже есть проблемки с "графикой" и приходится вечно поправлять всё, но не понял как это делается
LuneFox Уровень 41 Expert
28 апреля 2025
На каком шаге у тебя проблемы?
Anemon Уровень 13 Expert
2 мая 2025
Не могу найти самую фичу "кликаем правым ухом мышки прямо в код изменённого файла и выбираем Compile And Reload File", не вижу этого просто. Что-то не так делаю, но не понимаю что именно
LuneFox Уровень 41 Expert
7 мая 2025
Во время дебага жмешь?
Anemon Уровень 13 Expert
9 мая 2025
Конечно
LuneFox Уровень 41 Expert
16 мая 2025
Ну, по идее, должен быть такой пункт меню. Если не появляется, спроси у дипсика, почему.
Anemon Уровень 13 Expert
18 мая 2025
Я смог! Спасибо огромное
рустам Уровень 41
3 мая 2020
Ребят, подскажите кто нибудь! Уже все облазил, не могу разобраться(( У меня не появляется окно watches. Только окно variables. Intelleg Idea 20.1 Как открыть окно watches?
Jaroslav Melnychenko Уровень 41
15 мая 2020
ЛПК на Variables и в списке выбери очки. https://www.jetbrains.com/help/idea/debug-tool-window.html
15 февраля 2021
skrskr Уровень 39
5 февраля 2020
Вот про watches и quick watches
Даниил Уровень 41 Master
20 октября 2019
Блин, всё-таки пару моментов я не знал)
Валентин Уровень 35
7 октября 2019
Лайфхак: офигеваешь - вспомни теорию относительности Для 39-го уровня учить дебаг слишком поздно. Для 29-го уже не настолько поздно А если учесть, что уровней может быть 60 (два модуля еще в работе), то дебаг как-раз на средине, перед жесткими задачами - в самый раз. P.S. Эйнштейн был явно самым офигевшим :)
Алексей Уровень 39
3 июля 2020
Эти два модуля в работе уже 4 года) Не дождемся наверное
Уровень 1
25 января 2021
5й пошел
Dmitry Nikolsky Уровень 30
7 июля 2021
Эти модули еще были в разработке, когда мой отец тут занимался, а тогда вообще был 2013-2014, так что все 7 лет уже есть
Andrii Gorshunov Уровень 41 Expert
23 апреля 2019
Амиго мог не знать про дебаг :) его вроде не просили раньше об этом
King Уровень 30
20 апреля 2019
39 уровень, а мне рассказывают про кнопку "Debug". Я балдею просто. Karahanid всё правильно написал. Чем выше уровень, тем больше открываются глаза, что подход к обучению здесь не совсем верен. В курсе реально только первые 20 уровней доставляют, остальное дрочево.
skrskr Уровень 39
5 февраля 2020
Поэтому очень много людей с 25 уровнем, это интуитивно понятно. Думаю так даже лучше, тк практику тут лучше совмещать с книгой Шилда или Философией Джавы. В книге узнаёшь очень узкие нюансы, а здесь практикуешь борьбу с валидатором.