IDEA: замена кода и сто шагов назад (тихо на пальцах)



Недавно посмотрела доклад с конференции Devoxx и узнала две полезные штуки для дебага. О них и расскажу в посте.



1️⃣ Откат на предыдущий фрейм



У каждого потока есть стек вызовов. Оказывается, по нему можно перемещаться!



Чтобы сделать шаг назад, щёлкните в дебаггере область слева от метода. Внизу поста скриншот — рядом с методом должна появиться стрелка



2️⃣ Замена исполняемого кода



В дебаге нажать Shift-Shift и ввести Reload Changed Classes

или

Run → Debugging Actions → Reload Changed Classes



Нельзя заменять код в том методе, где остановился дебаггер. В любом другом — можно



Фичи отлично работают вместе для простых правок, которые сложно воспроизвести. Например, ошибка воспроизводится редко, на специфичном стенде или при участии других компонентов. План действий такой:



🔸 Зайти в удалённый дебаг, найти ошибку

🔸 Вернуться на пару фреймов назад

🔸 Поправить ошибку, сделать замену класса

🔸 Проверить, что всё ок



При этом сервис продолжит работать с исправленным классом, ну разве не красота🥰