Рубрики
Без рубрики

Отладка с помощью Eclipse

Ознакомьтесь с некоторыми полезными советами и рекомендациями по отладке Java-программ с помощью Eclipse

Автор оригинала: baeldung.

1. Обзор

В этом кратком руководстве мы рассмотрим, как отлаживать программы Java с помощью среды разработки Eclipse.

2. Основные Понятия

Eclipse имеет большую поддержку для отладки приложения. Он визуализирует пошаговое выполнение и помогает нам выявлять ошибки.

Чтобы продемонстрировать функции отладки в Eclipse, мы будем использовать пример программы Perfect Square Counter . Эта программа подсчитывает общее количество идеальных квадратов и даже идеальных квадратов под заданным числом:

public class PerfectSquareCounter {

    static int evenPerfectSquareNumbers = 0;

    public static void main(String[] args) {
        int i = 100;
        System.out.println("Total Perfect Squares: " + calculateCount(i));
        System.out.println("Even Perfect Squares : " + evenPerfectSquareNumbers);
    }

    public static int calculateCount(int i) {
        int perfectSquaresCount = 0;
        for (int number = 1; number <= i; number++) {
            if (isPerfectSquare(number)) {
                perfectSquaresCount++;
                if (number % 2 == 0) {
                    evenPerfectSquareNumbers++;
                }
            }
        }
        return perfectSquaresCount;
    }

    private static boolean isPerfectSquare(int number) {
        double sqrt = Math.sqrt(number);
        return sqrt - Math.floor(sqrt) == 0;
    }
}

2.1. Режим отладки

Во-первых, нам нужно запустить программу Java в Eclipse в режиме отладки. Это может быть достигнуто двумя способами:

  • Щелкните правой кнопкой мыши на редакторе и выберите Debug As- > Java-приложение (показано на скриншоте ниже)
  • Отладка программы с панели инструментов (выделено на скриншоте ниже)

Отладка || программы с панели инструментов (выделено на скриншоте ниже)

Нам нужно определить точки, в которых выполнение программы должно приостановиться для исследования. Они называются точками останова и применимы для методов. Они также могут быть определены в любое время до или во время выполнения.

В принципе, есть 3 способа добавить точки останова в программу:

  • Щелкните правой кнопкой мыши на маркерной полосе (вертикальной линейке), соответствующей линии, и выберите Переключить точку останова (показано на скриншоте ниже)
  • Нажмите Ctrl+Shift+B на нужной строке, находясь в редакторе
  • Дважды щелкните на маркерной полосе (вертикальной линейке), соответствующей необходимой линии

2.3. Управление потоком кода

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

Предположим, что отладчик в настоящее время расположен в соответствии с приведенным ниже скриншотом в строке 16:

Наиболее часто используемые параметры отладки:

  • Шаг в (F5) – Эта операция выполняется внутри методов , используемых в текущей строке (если таковые имеются); в противном случае она переходит к следующей строке. В этом примере он будет принимать отладчик внутри метода is Perfect Square()
  • Step Over (F6) – Эта операция обрабатывает текущую строку и переходит к следующей строке. В этом примере это приведет к выполнению метода is Perfect Square() и переходу к следующей строке
  • Шаг возврата (F7) – Эта операция завершает текущий метод и возвращает нас к вызывающему методу. Поскольку в этом случае у нас есть точка останова в цикле, она все еще будет находиться в методе, иначе она вернется к основному методу
  • Resume (F8) – Эта операция будет просто продолжаться до тех пор, пока программа не завершится если мы не достигнем какой-либо дополнительной точки останова

2.4. Перспектива отладки

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

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

Вот некоторые из наиболее полезных представлений, которые это содержит:

  • Представление отладки – Это показывает различные потоки и трассировки стека вызовов
  • Представление переменных – Показывает значения переменных в любой заданной точке. Если нам нужно увидеть статические переменные, нам нужно явно указать, что
  • Точки останова – Это показывает различные точки останова и точки наблюдения (которые мы увидим ниже)
  • Debug Shell – Это позволяет нам писать и оценивать пользовательский код во время отладки (пример будет рассмотрен позже)

3. Методы

В этом разделе мы рассмотрим некоторые важные методы, которые помогут нам освоить отладку в Eclipse.

3.1. Переменные

Мы можем видеть значения переменных во время выполнения в представлении переменных. Чтобы увидеть статические переменные, мы можем выбрать раскрывающийся список Java- > Показать статические переменные .

Используя представление переменных, можно изменить любое значение на желаемое значение во время выполнения.

Например, если нам нужно пропустить несколько чисел и непосредственно начать с числа 80, мы можем сделать это, изменив значение переменной number :

3.2. Проверка Значений

Если нам нужно проверить значение выражения или оператора Java, мы можем выбрать конкретное выражение в редакторе, щелкнуть правой кнопкой мыши и проверить, как показано ниже. Удобный ярлык состоит в том, чтобы нажать Ctrl+Shift+I на выражении, чтобы увидеть значение:

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

3.3. Отладочная оболочка

В контексте сеанса отладки мы можем написать и запустить пользовательский код для оценки возможностей. Это делается в отладочной оболочке.

Например, если нам нужно перепроверить правильность функциональности sqrt , мы можем сделать это в отладочной оболочке. В коде Щелкните правой кнопкой мыши- > Проверить , чтобы увидеть значение:

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

Будут случаи, когда мы захотим отлаживать только для определенных условий. Мы можем достичь этого, добавив условия к точке останова одним из двух способов:

  • Щелкните правой кнопкой мыши точку останова и выберите пункт Свойства точки останова
  • В представлении точки останова выберите точку останова и укажите условие

Например, мы можем указать точку останова для приостановки выполнения только в том случае, если число равно 10:

3.5. Точки наблюдения

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

Это поведение по умолчанию, которое можно изменить в свойствах точек наблюдения.

В этом примере отладчик останавливает выполнение каждый раз, когда идеальный квадрат является четным числом:

3.6. Триггерные точки

Предположим, что мы отлаживаем сложную проблему в приложении с огромным количеством исходного кода. Отладчик будет продолжать приостанавливать поток из-за разбросанных точек останова.

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

Например, на скриншоте ниже предполагается, что точка останова в isPerfectSquare() должна попадать на каждую итерацию цикла. Однако мы указали точку останова в методе calculate Count() в качестве триггерной точки вместе с условием.

Таким образом, когда количество итераций достигнет 10, это вызовет остальные точки останова. Следовательно, с этого момента, если точка останова на является идеальным квадратом () , выполнение будет приостановлено:

3.7. Удаленная отладка

Наконец, если приложение работает вне Eclipse, мы все равно можем использовать все вышеперечисленные функции при условии, что удаленное приложение позволяет отладку. В Eclipse мы бы выбрали Debug в качестве удаленного Java – приложения .

4. Заключение

В этом кратком руководстве мы познакомились с основами и различными методами отладки программ в среде Eclipse IDE.

Как всегда, исходный код, используемый в этом упражнении, доступен на GitHub .