Eclipse как посмотреть значение переменной
Перейти к содержимому

Eclipse как посмотреть значение переменной

  • автор:

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

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

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

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

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

 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 в режиме отладки. Этого можно достичь двумя способами:

  • Щелкните правой кнопкой мыши редактор и выберите « Отладка как» -> «Приложение Java» (показано на снимке экрана ниже).
  • Отладьте программу с панели инструментов (выделено на снимке экрана ниже)

./db252fcab3bb28fe140995f125a76740.jpg

2.2. Контрольные точки​

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

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

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

./2bc84f84300588e6a3638c838b0419b8.jpg

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

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

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

./9504666861ef8846585f891d3845d62e.jpg

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

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

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

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

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

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

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

./c8242735ae49a41e559dfb7b6bf90c6c.jpg

3. Методы​

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

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

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

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

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

./c2cecbdfd6043de191930889e90be113.jpg

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

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

./ac14619db4a6ede14a8116a3ea684ab3.jpg

./ef25320a33ba6a56c6607490180b5899.jpg

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

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

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

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

./726352552878099e0eb284175fdceed6.jpg

./518ccb5e162247712998fd8a76b361d5.jpg

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

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

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

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

./a014223fa804e97ac8a762ee6d0da852.jpg

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

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

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

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

./57cabfef6f60a89dc57a3f0613e2a8c5.jpg

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

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

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

Например, на снимке экрана ниже точка останова isPerfectSquare() должна срабатывать при каждой итерации цикла. Однако мы указали точку останова в методе calculateCount() в качестве точки срабатывания вместе с условием.

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

./a61037a74942fb89436e2d13adb5192b.jpg

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

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

4. Вывод​

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

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

  • 1. Обзор
  • 2. Основные понятия
    • 2.1. Режим отладки
    • 2.2. Контрольные точки
    • 2.3. Управление потоком кода
    • 2.4. Перспектива отладки
    • 3.1. Переменные
    • 3.2. Проверка значений
    • 3.3. Отладочная оболочка
    • 3.4. Условные точки останова
    • 3.5. Точки наблюдения
    • 3.6. Триггерные точки
    • 3.7. Удаленная отладка

    Как можно больше об Eclipse по-русски

    Eclipse — свободный фреймворк для разработки модульных кросс-платформенных приложений. Является одновременно IDE с огромным, легко расширяемым, функционалом для групповой разработки и мощной платформой для создания своих собственных расширений и приложений. Хочется самому знать об этом как можно больше и по возможности делиться этими знаниями с другими.

    Страницы

    • Главная страница
    • Полезные ссылки

    понедельник, июня 22, 2009

    Eclipse Enviroment

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

    Думаю мне не стоит объяснять для чего и как используются системные переменные окружения, а также, что такое строки подстановки и где они применяются. Пользу от переменных значений в программировании сложно переоценить. Но вопрос — насколько значнения системных переменных окружения переменны? Т.е. я хочу сказать — как часто и на сколько легко править системные переменные окружения? Если вы скажите, что редко и эта процедура вполне удобна, то, думаю, эта статья будет вам не особо интересна. Лично я, довольно давно работаю с несколькими проектами, в которых активно используются кое-какие системные перменные, при этом, значения от этих переменных проекты ожидают разные, понятно: пути к библиотекам и ресурсам для разных проектов — разные, а переменная одна. Приходится как-то переключатся. Это можно делать по разному:

    • скрипт для глобальной смены переменных окружения — ужастный вариант, схожий по извращению со сменой переменных окружения руками, оснобенно сочувствую несчастным пользователям Windows, конечно этот вариант хорош при инсталяции вашей системы на машине заказчика, но работать так повседневно — крайне затруднительно;
    • скрипт запуска приложений с нужными переменными — так например, можно запускать Eclipse IDE или своё приложение с помощью отдельных скриптов, в которых перед вызовом самого приложения предварительно прописать экспорты (export) (или сеты (set) для Windows) тех или иных переменных окружения. Вариант более удобный и в каких-то случаях вполне приемлемый, но мы будем говорить о том как, по крайней мере внутри Eclipse IDE, достигнуть этого же эффекта более элегантным способом.

    Предположим, что у нас есть проект, который называется «MyPrj». Пусть у этого проекта есть корневая директория, в которой находится сам файл для запуска приложения, а также его конфигурационные файлы и какие-то библиотеки, такие как log4j.jar и тому подобные. Таким образом, есть примерная структура проекта:

    /home/sk/myprj/root [кореневая директория] |-- bin [папка для рабочих файлов проекта] |-- config [папка с конфигурацией] `-- libs [какие-то библиотеки] 

    Теперь посмотрим, что можно сделать в настройках Eclipse Workspace.

    Вообще надо сказать, что настройки Eclipse, относящиеся к проектам, заданы по умолчанию на уровне IDE, но они могут быть переопределены в свойствах конкретного проекта, это можно называть по умному — project-specific settings.

    Таким образом для начала работы, если мы хотим использовать у себя в проекте библиотеку log4j.jar , то мы должны сказать проекту, где она лежит. А для этого необходимо определить, так называемые classpath variable, в настроеках проекта: Project >> Properties >> Java Build Path . В этом окне можно добавлять пути к внешним библиотекам разными способами, описывать каждый я не буду — мы хотим использовать переменные, поэтому жмем «Add Variable». Далее, чтобы создать свою переменную нужно нажать ещё несколько кнопок: Configure Variables >> New . Назовем переменную MYPRJ_ROOT и в качестве значения укажем корневую директорию проекта:

    Далее, создав переменную, её можно использовать для формирования пути к библиотекам — в диалоге «Add Variable», выбираем из списка MYPRJ_ROOT и жмем на кнопку «Extend» и ищем в списке нужную библиотеку:

    Описаный способ подключений библиотек, в общем-то вполне очевиден, также понятно в чём плюс такого подхода: при разработке проекта несколькими людьми на разных машинах пути к директории libs могут (и скорее всего будут) отличатся. Используя переменную — проблема будет состоять только в том, чтобы каждый разработчик настроил у себя в workspace нужным образом classpath variable (понятно, что в этом случае название переменной должно быть оговорено и быть стабильным).

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

    В Eclipse есть возможность запускать проекты каждый со своими индивидуальными настройками, вплоть настроек значений переменных окружения. Для этого в окне настроек Eclipse ( Window >> Preferences >> Run/Debug >> String Substitution ) создадим строку подстановки, которую в последствии используем в качестве значения для внутренней переменной окружения Eclipse:

    Назовем строку подстановки, как и в пункте 1 — «MYPRJ_ROOT» (хотя это и не обязательно, более того не надо путать переменые описанные в пункте 1 и строки подстановки, а также переменные окружения — это разные вещи) и снова укажем в качестве значения корневую директорию проекта: /home/sk/myprj/root .

    Теперь нам при запуске приложения необходимо указать JVM правильный CLASSPATH. Для этого в диалоге «Run Configurations», во вкладке «Enviroment» нужно создать внутреннюю переменную окружения для проекта. И опять назовем её «MYPRJ_ROOT» . честно сказать я обычно и в реальном проекте так делаю и даже не путаюсь в итоге, но вообще, опять же — всё зависит от ситуации и личных взглядов.

    Далее во вкладке «Arguments», в поле «VM arguments» напишем следующее заклинание (одинаково для любой ОСи):

    -Djava.ext.dirs=$/libs

    Теперь, во-первых, запускаемое приложение будет полностью уверенно, что в системе есть переменная окружения $ (или %MYPRJ_ROOT% на виндовый манер), которую можно использовать во время выполнения, например, как-нибудь так:

    а во-вторых: CLASSPATH обращен к директории /home/sk/myprj/root/libs , где JVM будет искать необходимые библиотеки для проекта, и этот путь с нашей точки зрения будет являтся относительным (как минимум относительно данного проекта).

    Здесь оговорюсь: использование переменных окружения в качестве нахождения пути к папке с проектом — не лучший способ, тут я просто продемонстрировал пример использования переменных окружения, может не самый удачный, но смысл тут остаётся один — показать то, как в Eclipse IDE создать окружение для отлаживаемого приложения.

    Следующий шаг — это выкладываение собраной библиотеки нашего проекта в директорию, от куда её потом можно будет запускать в качестве stand alone приложения.

    Конечно, сборкой проекта, особенно крупного, должны заниматься монстровые инструменты, такие как Ant и Maven, а всякие там гуёвые решения (от англ. GUI) — это, понятно, от лукавого. Но всё же рассмотрим именно последный, т.е. гуёвый, вариант, коли уж мы говоим о переменных подстановки. Сразу скажу, что путь этот несколько тернист и сразу не очевиден.

    Есть такая замечательная вещь как JBoss Tools — это набор расширений Eclipse для работы с продуктами JBoss — Hibernate, JBoss AS, JSF, Seam и т.д и т.п. В этом, почти бесконечном, наборе инструментов, есть такая, сразу не заметная, вещь как JBoss archives tools, она позволяет автоматом пакетировать java-библиотеки и выкладывать их в указаных местах. Как с помощью этого инструмента пакетировать проект — это тема для отдельного, пусть и не длинного, разговора, напишу об этом в следующем посте, а вот как выкладывать собраные библиотеки мы поговорим прямо сейчас.

    Прежде, чем начать забивать гвозди — нужно взять молоток в руку. Тем кто пользуется целым пакетом JBoss Tools, в каких-то своих целях, проще — у них инструментальный ящик под есть рукой и достать от туда молоток не проблема. А вот, для тех у кого этого счастья нет, и вообще не понятно нафиг оно нужно — есть два варианта: либо вообще плюнуть на это дело, либо скачать молоток отдельно. Устанавливать у себя целиком JBoss Tools ради одного инструмента — сомнительное удовольствие, JBoss archives tools можно легко установить отдельно, не выходя из Eclipse, для этого идём в окошко одновлений: Help >> Software Updates >> [вкладка] Available Software . Здесь нам нужно добавить адрес к JBoss Update Site (кнопка «Add Site. «) — здесь я оставлю выбор сайта на усмотрение читателя: http://www.jboss.org/tools/download.html. Также, есть возможность, просто, скачать пакет в качестве архива — это можно сделать тут (для Eclipse 3.4.2): https://www.jboss.org/tools/download/stable.html.

    После всех этих не простых приготовлений в Eclipse должна появиться View «Project archives» (быстро найти её можно нажав Ctrl+3 и вписав в текстовое поле: «archives»). Теперь можно приступать к эксплуатации: выбрав наш проект, он появится в «Project archives», от куда по правой кнопке перейдем в диалог создания нового JAR файла. Здесь настраивая содержимое архива нашего проекта можно указать путь назначения для сборки. И сделать это можно, опять же с помощь внутренних переменных окружения Eclipse — указав в поле «Destination»: $/bin/ , и выбрав для «Replace to» пункт «file system»:

    В общем-то это всё. После создания и настройки архива, во View «Project Explorer» (к сожалению, только в этой View) у проекта должна появится такая штука:

    т.е. кнопка сборки архива проекта всегда под рукой и копирование архива при этом происходит сразу в нужное место. Очень удобно.

    Как при отладке в eclipse выводить отладочную информацию (значения переменных) прям в редакторе кода?

    пример отображения в pycharm

    В eclipse при отладке есть возможность выводить значения переменных в каждой строке редактора кода. Какой настройкой это можно включить? Пример, как это выглядит в pycharm

    Отслеживать
    задан 11 фев 2019 в 21:43
    Artem Iliukhin Artem Iliukhin
    1 2 2 бронзовых знака

    1 ответ 1

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

    Насколько я знаю, такой возможности в eclipse нет. Есть возможность просматривать (и менять) значения всех находящихся в области видимости переменных в отдельном виде ( view ) varables ( Alt+Shift+Q, V ), можно воспользоваться видом expressions , который показывает значения выражений (можно, например, специально для отладки написать методы, показывающие что-то в удобном для восприятия виде), и при наведении курсора на переменную в режиме отладки отображается ее содержимое:

    введите сюда описание изображения

    Отслеживать
    ответ дан 3 мар 2019 в 7:22
    3,377 10 10 серебряных знаков 24 24 бронзовых знака
    Оказалось, я видел такую реализацию в конкретной ide на базе eclipse.
    19 апр 2019 в 4:30

    • eclipse
    • отладка
    • настройка
      Важное на Мете
    Похожие

    Подписаться на ленту

    Лента вопроса

    Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

    Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.8.5973

    Eclipse – программа отладки

    То же действие можно выполнить с помощью Package Explorer, выбрав класс, который содержит метод main, и нажав Alt + Shift + D, J.

    Любое из упомянутых выше действий создает новую конфигурацию отладки и использует ее для запуска приложения Java.

    Если конфигурация отладки уже создана, вы можете использовать ее для запуска приложения Java, выбрав «Конфигурации отладки» в меню «Выполнить», щелкнув имя конфигурации отладки, а затем нажав кнопку «Отладка».

    Программа отладки

    Пункт меню «Отладка» в меню «Выполнить» можно использовать для перезапуска Java-приложения, которое ранее было запущено в режиме отладки.

    Запустить меню

    Сочетание клавиш для запуска ранее запущенного Java-приложения в режиме отладки – F11. Когда Java-программа запускается в режиме отладки, пользователям предлагается переключиться на перспективу отладки. Перспектива отладки предлагает дополнительные представления, которые можно использовать для устранения неполадок приложения.

    Редактор Java позволяет пользователям размещать точки останова в коде Java. Чтобы установить точку останова, в области редактора щелкните правой кнопкой мыши на панели маркеров и выберите Toggle Breakpoint.

    Редактор Java

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

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

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

    Стек вызовов отладки

    Представление переменных может использоваться для проверки значения переменных.

    Значение переменной

    В меню «Выполнить» есть пункты меню, которые позволяют возобновить выполнение, перейти через строку кода, войти в функцию и т. Д.

    Запустить пункты меню

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *