Вебинар_Debugger в IntelliJ IDEA_К.Шибков_30.09.21

YOUTUBE · 28.11.2025 03:00

Ключевые темы и таймкоды

Введение в отладку кода

0:05
  • Обсуждение темы отладки кода в среде разработки JetBrains.
  • Сравнение отладки с логированием и планированием.
  • Логирование полезно для постфактум анализа, но не позволяет детально изучать состояние программы во время работы.

Преимущества отладки

2:01
  • Отладка позволяет заморозить состояние приложения на любом этапе.
  • Возможность анализа и внесения изменений без перезапуска приложения.
  • Запуск приложения в режиме отладки через кнопку "Play".

Пример использования отладки

4:01
  • Пример приложения, которое должно находить числа, делящиеся на одно из значений массива.
  • Запуск приложения в режиме отладки показывает исключение деления на ноль.
  • Использование stack trace для отслеживания пути выполнения кода до ошибки.

Установка точки останова

6:56
  • Установка точки останова с помощью клавиатуры или мыши.
  • Пример установки точки останова на строке 30, где произошла ошибка.
  • Программа останавливается на этой точке в режиме отладки.

Интерфейс отладчика

8:50
  • Описание интерфейса отладчика: вкладки, навигация по коду, консоль.
  • Возможность перехода по коду с помощью кнопок навигации.
  • Использование кнопок для перехода внутрь методов и выхода из них.

Анализ состояния приложения

12:44
  • Обзор стека вызовов методов и состояния объекта.
  • Возможность просмотра локальных переменных и полей класса.
  • Пример анализа состояния массива и локальных переменных в методе.

Завершение отладки

16:34
  • Переход к следующему выражению и завершение отладки.
  • Приложение падает при завершении отладки.
  • Повторный запуск приложения для детального анализа.

Деление на ноль

17:32
  • Деление на ноль вызывает исключение.
  • Необходимо проверить, делится ли переданное число на одно из значений массива.
  • Проверка выполняется с помощью метода value.

Проверка массива

18:28
  • Обращение к массиву для проверки значения.
  • Значение массива проверяется на делимость.
  • Результат деления проверяется на истинность.

Итерация цикла

19:26
  • Использование клавиши F9 для итерации цикла.
  • Проверка значений массива с индексом 1 и 50.
  • Программа должна печатать числа из набора.

Исследование ошибок

21:21
  • Изучение конкретной ошибки для исследования программы.
  • Проверка правильности заполнения списка.
  • Проверка условий выполнения цикла.

Проверка делимости

22:21
  • Проверка делимости числа на 2 и 50.
  • Условие if выполняется только при делимости.
  • Проверка значений 50 и 51.

Использование выражений

24:16
  • Вызов метода и проверка значений.
  • Использование выражений для проверки условий.
  • Сохранение выражений для дальнейшего отслеживания.

Работа с переменными

27:15
  • Создание выражений для работы с переменными.
  • Использование горячих клавиш для вызова выражений.
  • Проверка состояния объекта через приватные переменные.

Работа с точками останова

30:09
  • Использование точек останова для отладки.
  • Перезапуск программы с нового режима.
  • Продолжение выполнения программы с точки останова.

Управление точками останова

32:07
  • Остановка программы и продолжение выполнения.
  • Просмотр всех точек останова.
  • Игнорирование точек останова для продолжения выполнения.

Установка точек останова

35:01
  • Установка точек останова для проверки условий.
  • Возможность деактивации точек останова без удаления.
  • Многопоточность и её отладка.

Отладка условий

36:01
  • Сложности отладки условий в многопоточности.
  • Использование точек останова для отслеживания условий.
  • Пример с проверкой значения 50.

Проверка значений

36:59
  • Проверка значений от 0 до 100 тысяч.
  • Проблемы с отображением значений.
  • Использование точек останова для отладки.

Удаление фреймов

39:51
  • Удаление фреймов для возврата к вызову метода.
  • Переназначение значений переменных.
  • Проверка состояния программы.

Осторожность с фреймами

43:45
  • Осторожность при удалении фреймов.
  • Влияние на состояние класса.
  • Проблемы с большими методами.

Проверка значений и состояний

45:40
  • Проверка значений и состояний переменных.
  • Проблемы с добавлением значений.
  • Ошибки при проверке условий.

Отладка конструкторов

51:23
  • Установка точек останова на конструкторы.
  • Отслеживание изменений переменных.
  • Использование выражений для отслеживания значений.

Настройка лигатур

54:18
  • Настройка лигатур в шрифтах.
  • Включение лигатур для отображения значков.
  • Пример отображения лигатур.

Работа с документами и стримами

55:16
  • Возможность ставить документы внутри стрима.
  • Метод форматирования строк.
  • Проблемы с большими стримами и их отображение.

Горячая замена кода

57:12
  • Горячая замена кода без перезапуска приложения.
  • Удаление и замена методов без изменения состояния объекта.
  • Преимущества и ограничения горячей замены кода.

Пример использования горячей замены кода

59:09
  • Изменение формата вывода в реальном времени.
  • Перекомпиляция класса и замена метода.
  • Демонстрация работы горячей замены кода.

Вопросы и ответы

1:01:07
  • Ответы на вопросы о сборке и использовании Linux.
  • Преимущества использования дебаггера.
  • Контроль состояния приложения и логирование.

Изучение стека вызовов

1:03:03
  • Анализ стека вызовов при запуске приложения.
  • Изучение инициализации и работы beanfactory.
  • Возможность просмотра контекста и значений среды.

Вопросы и завершение

1:07:01
  • Вопросы по теме и завершение презентации.
  • Обещание выложить запись вебинара.
  • Призыв к фидбэку и обсуждение тем.

Построчное выполнение программы

1:08:57
  • Построчное выполнение программы для лучшего понимания.
  • Преимущества изучения работы программы шаг за шагом.
  • Использование force для проваливания в методы.

Заключение

1:11:53
  • Подведение итогов и прощание.
  • Призыв пользоваться с удовольствием.