Использование отладки в IDEA — это так здорово!

Java задняя часть
Использование отладки в IDEA — это так здорово!

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

Зачем использовать отладку?

Видя, что декабрь вот-вот пройдет, Чжан Сан лежит на кровати в университетском общежитии, в данный момент он одновременно счастлив и обеспокоен.

Я рад, что скоро смогу отпраздновать новый год со своей девушкой, но меня беспокоит куча ошибок в моей итоговой домашней работе по java.

Чжан Сан плохо говорит по-английски, и он не может понять сообщение об ошибке на консоли, поэтому чем больше он думает об этом, тем больше раздражается.

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

Оказалось, что Чжан Сан копировал и вставлял кучу печатных заявлений. Сосед по комнате больше не мог этого выносить и спросил его: «Почему ты не используешь Debug при отладке программы?»

«Разве вам не хлопотно писать так много системных операторов? В конце задания вы должны удалить все эти операторы печати один за другим. Это пустая трата времени».

Таким образом, мы не пишем кучу системных операторов печати, как только сталкиваемся с проблемами при написании программ, что на самом деле является пустой тратой времени.

С помощью Debug можно отслеживать процесс выполнения программы, быстро определять местонахождение исключения программы и помогать нам быстро находить ошибочный код.

2. Включить отладку

2.1 Интерфейс в режиме отладки

Давайте сначала посмотрим на интерфейс в режиме отладки в IDEA:

    1. Запустите службу в режиме отладки. В разработке я обычно запускаю программу напрямую в режиме отладки, что удобно для отладки кода в любое время.
    1. Для точек останова мы можем щелкнуть, чтобы установить непосредственно в левой части столбца с номером строки, или использовать сочетание клавиш Ctrl+F8, чтобы установить или отменить точки останова.
    1. Окно отладки: Окно отладки активируется, когда запрос достигает первой точки останова.
    1. Отладка Кнопка отладки: мы в основном используем эти кнопки в процессе отладки, а сочетания клавиш могут отображаться на кнопке наведения мыши.
    1. Кнопка службы отладки: здесь мы можем включать и выключать службу отладки и т. д.
    1. Область методов: здесь отображаются методы, выполняемые во время отладки.
    1. Область параметров: здесь отображаются значения всех параметров до текущей точки останова.

2.2 Включить отладку

Сначала установите точку останова, а затем запустите в режиме отладки:

Примечание. Мы также можем добавлять/удалять точки останова во время выполнения программы.

3. Общие кнопки отладки в Debug

3.1 Перейти к строке исполняемого в данный момент кода

Сначала мы устанавливаем точку останова на странице, затем переключаемся на другие страницы, нажимаем эту кнопку и обнаруживаем, что переходим к строке, где выполняется код:

3.2 Перешагнуть

步过Просто спускайтесь пошагово, пропуская все способы:

В приведенном выше примере, даже если он встретит системный метод печати и метод test1, он перейдет и продолжит выполнение.

3.3 Шаг в

Во время выполнения, если встречается自定义Метод может войти в метод внутри, но не войдет в метод в библиотеке классов JDK.

В приведенном выше примере, когда встречается системный метод, он автоматически переходит, но когда встречается пользовательский метод, он вводит метод для выполнения, а когда выполнение завершено, он возвращается к вызывающей стороне метода. .

3.4 Принудительный вход

Независимо от того, встретите ли вы метод библиотеки классов JDK или пользовательский метод, он войдет в метод для выполнения.

В приведенном выше примере, независимо от того, встречается ли системный метод в библиотеке классов JDK или пользовательский метод test1, он введет метод для выполнения.

3.5 Выйти

步出Это возврат изнутри введенного метода к вызову метода.

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

3.6 Назад к точке останова

回退断点处Это означает, что вы можете вернуться к вызову указанного метода.

В приведенном выше примере мы выполнили методы test1, test2, method2 последовательно, но мы можем выбрать возврат непосредственно к вызывающей стороне метода test1.

Разница между выходом и перемоткой точек останова:

  • вернуться туда, где был вызван метод
  • Выход может вернуться только к вызову текущего метода
  • Резервная точка останова может вернуться к вызову указанного метода при условии, что метод уже был выполнен.

3.7 Найдите курсор

Если мы напишем сотни строк кода, пошаговое выполнение займет много времени. В это время мы можем сначала поместить курсор в указанное место, а затем нажать定位光标处кнопку, то код будет выполняться сразу к курсору.

В приведенном выше примере мы переместили курсор мыши на строку ниже, а затем щелкнули定位光标处кнопка, код немедленно выполняется в этой строке.

3.8 Вычисление выражений

计算表达式Может помочь нам рассчитать возвращаемое значение некоторых выражений.

Как видно из приведенного выше примера, мы можем использовать некоторые пользовательские параметры для вычисления возвращаемого значения метода перед вызовом метода.

4. Просмотр параметров

4.1 Отображение после строки, в которой находится параметр

4.2 Вид при наведении курсора

Курсор наводится на параметр для отображения информации о текущей переменной, я часто использую этот способ, очень удобный.

4.3 Просмотр в переменных

Здесь отображаются все переменные текущего метода.

4.4 Просмотр в часах

В Watches нажмите New Watch и введите переменную, которую хотите просмотреть:

5. Условные точки останова

Иногда наш код содержит много операторов for, но при отладке с точками останова он будет выполняться много раз. В это время мы можем выбрать точку останова, щелкнуть правой кнопкой мыши, чтобы установить условие, и только когда условие будет выполнено, точка останова будет выполнена здесь.

В приведенном выше примере мы установили условие для точки останова: i==50, поэтому, когда мы запускаем программу в режиме отладки, мы обнаруживаем, что в это время i равно 50.

6. Кнопка настроек службы отладки

6.1 Выполнить до следующей точки останова до конца

Функция этой кнопки: если ниже есть точка останова, перейти к следующей точке останова. В противном случае выполнение программы прекращается.

6.2 Отключение звука в точке останова

Иногда мы уже знаем результат, когда достигаем определенного шага, но позади еще куча точек останова. Я хочу сделать эти точки останова недействительными, но я все еще хочу использовать эти точки останова для второй трассировки, на этот раз я могу использовать断点静音.

6.3 Просмотр/очистка точек останова

Нам нужно очистить все точки останова после выполнения кода, но очищать одну за другой слишком долго.В это время вы можете использовать эту кнопку, чтобы просмотреть все установленные точки останова или очистить все точки останова.

6.4 Возврат к первой точке останова

Код выполняется до определенной строки и хочет вернуться к первой точке останова:

7 Многопоточная отладка

Поскольку порядок, в котором ЦП выполняет потоки, является случайным, мы можем использовать отладку точки останова, чтобы настроить выполнение следующего потока.

Сначала установите точки останова обоих потоков в режим потока:

Затем выберите указанный поток в области методов для выполнения: