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

В 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,387 10 10 серебряных знаков 24 24 бронзовых знака
Оказалось, я видел такую реализацию в конкретной ide на базе eclipse.
19 апр 2019 в 4:30
- eclipse
- отладка
- настройка
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.9.3159
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Использование и расширение Eclipse — тест 3


 (1)  

 (2)  

 (3)  
Номер 2
В каком случае выполняется настройка переменных среды окружения?

 (1)  

 (2)  

 (3)  
Номер 3
На какой вкладке окна настройки запуска задается кодировка консоли?
 (1) JRE 
 (2) Environment 
 (3) Common 
Упражнение 4: Номер 1
Какие данные о переменных отображаются в виде Variables при отладке?
 (1) имя переменной 
 (2) значение переменной 
 (3) описание переменной 
Номер 2
В каком виде перспективы Debug можно изменить значение переменной в процессе отладки?
 (1) Variables 
 (2) Editor 
 (3) Debug 
Номер 3
Какие утверждения являются верными?
 (1) значения переменных в процессе отладки не могут быть изменены 
 (2) значения переменных отображаются в виде Debug перспективы Debug 
 (3) вид Variables перспективы Debug позволяет изменять значения переменных 
 (4) вид Variables перспективы Debug позволяет только просматривать текущие значения переменных 
Упражнение 5: Номер 1
Какие утверждения являются верными?
 (1) в процессе отладки нельзя переключиться с перспективы Debug на какую-либо другую 
 (2) при запуске отладчика Eclipse переключается в перспективу Debug 
 (3) точки останова нельзя ставить в процессе выполнения отладки 
Номер 2
При нажатии какой кнопки отладчик выполнит метод без входа внутрь него?
 (1) (1) 
 (2) (2) 
 (3) (3) 
 (4) (4) 
Номер 3
При нажатии какой кнопки будет выполнен вход в метод?
 (1) (1) 
 (2) (2) 
 (3) (3) 
 (4) (4) 
Упражнение 6: Номер 1
Сколько потоков имеет запущенное приложение?
 (1) ни одного 
 (2) один 
 (3) невозможно определить 
Номер 2
Как можно выполнить команду Step Into при отладке?
 (1) нажатием кнопки F6 
 (2) с помощью пункта Run в главном меню 
 (3) с помощью панели инструментов вида Debug 
Номер 3
Как можно выполнить команду Step Over при отладке?
 (1) нажатием кнопки F6 
 (2) с помощью пункта Run в главном меню 
 (3) с помощью панели инструментов вида Debug 
Упражнение 7: Номер 1
Какие переменные отображаются в окне Variables View?
 (1) локальные переменные, объявленные в методе 
 (2) переменные всех методов отлаживаемой программы 
 (3) все переменные текущего контекста 
Номер 2
Какое действие выполняет команда Watch контекстного меню в редакторе?
 (1) добавляет переменную в окно переменных (Variables View) 
 (2) добавляет переменную в окно точек-останова (Breakpoints View) 
 (3) добавляет переменную в окно выражений (Expressions View) 
Номер 3
Какие утверждения являются верными?
 (1) в окно Expressions View можно добавлять переменные и выражения 
 (2) в окно Variables View можно добавлять только переменные 
 (3) в окно Expressions View можно добавлять только выражения 
Упражнение 8: Номер 1
Как добавить новое выражение в окно Expressions View?
 (1) с помощью контекстного меню в редакторе 
 (2) с помощью контекстного меню окна Expressions View 
 (3) с помощью соответствующей кнопки на панели ниструментов окна Expressions View 
Номер 2
В каком случае при наведении курсора на имя переменной в редакторе будет выводиться значение этой переменной в виде подсказки?

 (1)  

 (2)  

 (3)  
Номер 3
В каком случае при наведении курсора на имя переменной в редакторе не будет выводиться значение этой переменной в виде подсказки?

 (1)  

 (2)  

 (3)  
Упражнение 9: Номер 1
Какая команда продолжает исполнение программы до ее завершения?
 (1) Resume 
 (2) Terminate 
 (3) Run to Line 
Номер 2
Какая команда завершает исполнение программы?
 (1) Resume 
 (2) Terminate 
 (3) Run to Line 
Номер 3
Какое действие выполняет команда Resume?
 (1) завершает исполнение программы 
 (2) продолжает исполнение программы до ее завершения 
 (3) исполняет программу до текущей позиции курсора 
Упражнение 10: Номер 1
Какая команда контекстного меню позволяет просмотреть заданные фильтры?
 (1) Edit Step Filters 
 (2) Filter Type 
 (3) Filter Package 
Номер 2
Сколько задано таких фильтров, которые позволяют отладчику не входить в стандартные пакеты?
 (1) ни одного 
 (2) 1 
 (3) 7 
Номер 3
Какая кнопка окна Debug предназначена для включения/выключения фильтров?
 (1) (1) 
 (2) (2) 
 (3) (3) 
 (4) (4) 
Упражнение 11: Номер 1
На какой строке кода отладчик остановится первый раз при входе в процедуруmain?
 (1) 54 
 (2) 56 
 (3) 57 
 (4) 61 
Номер 2
В каких строках установлены активные точки останова?
 (1) 54 
 (2) 56 
 (3) 57 
 (4) 61 
Номер 3
В каких строках установлены неактивные точки останова?
 (1) 54 
 (2) 56 
 (3) 57 
 (4) 61 
Упражнение 12: Номер 1
Когда отладчик остановится на строке 59?
 (1) всегда 
 (2) при выполнении условия i > 0  
 (3) никогда 
Номер 2
Когда отладчик остановится на строке 55?
 (1) всегда 
 (2) при выполнении условия i > 0  
 (3) никогда 
Как можно больше об 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
Теперь, во-первых, запускаемое приложение будет полностью уверенно, что в системе есть переменная окружения $
а во-вторых: 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»: $
В общем-то это всё. После создания и настройки архива, во View «Project Explorer» (к сожалению, только в этой View) у проекта должна появится такая штука:
т.е. кнопка сборки архива проекта всегда под рукой и копирование архива при этом происходит сразу в нужное место. Очень удобно.
Eclipse как посмотреть значение переменной
Профиль
Группа: Участник
Сообщений: 446
Регистрация: 8.2.2007
Репутация: нет
Всего: нет
Подскажите, как в Eclipse во время отладки вычислять выражение, т.к. не смотреть значения переменных в коде, а выпонить свой код с этими переменными в целях отладки?
CTRL+SHIFT+D помогает посмотреть результат выражения в коде.
CTRL+SHIFT+I вообще ничего не делает, по моим экспериментам.
(В IDEA есть пункт меню «Еxpression. » и вкладка окна)
| Дата 6.9.2007, 12:54 (ссылка) | (нет голосов) Загрузка . |
Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ
Репутация: 11
Всего: 151
А просто в секцию watch выражение записать разве нельзя?
«Чтобы правильно задать вопрос, нужно знать большую часть ответа» (Р. Шекли)
ЖоржЖЖ
| Дата 6.9.2007, 13:03 (ссылка) | (нет голосов) Загрузка . |
Профиль
Группа: Участник
Сообщений: 446
Регистрация: 8.2.2007
Репутация: нет
Всего: нет
batigoal, которая сразу после списка переменных (ниже)? Я пробовал писать, но результат не могу получить? Может, там надо CTRL+SHIFT+D нажимать (я так не пробовал)?
| Дата 6.9.2007, 13:04 (ссылка) | (нет голосов) Загрузка . |
Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ
Репутация: 11
Всего: 151
Сейчас сказать не могу — Эклипса нету.
«Чтобы правильно задать вопрос, нужно знать большую часть ответа» (Р. Шекли)
ЖоржЖЖ
| Дата 6.9.2007, 16:10 (ссылка) | (нет голосов) Загрузка . |
Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea
Репутация: 12
Всего: 62
Entry_N3
Открыть Window/Show View/Display для перспективы Debug
Когда выполнение станет на брекпойнте — написать в окошке Display код который хочешь выполнить в данном контексте
Выделить этот код и нажать CTRL+SHIFT+D
Код выполниться и результат работы напишет сюда же в Display
Это сообщение отредактировал(а) Maksym — 6.9.2007, 16:11
| Дата 6.9.2007, 16:15 (ссылка) | (нет голосов) Загрузка . |
Профиль
Группа: Участник
Сообщений: 446
Регистрация: 8.2.2007
Репутация: нет
Всего: нет
Maksym, круто.
| Дата 6.9.2007, 16:24 (ссылка) | (нет голосов) Загрузка . |
Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea
Репутация: 12
Всего: 62
Entry_N3
«conditional breakpoint» + «exception breakpoint» + выполнение кода в Display — мои основные инструменты отладки.
| Дата 9.9.2007, 22:59 (ссылка) | (нет голосов) Загрузка . |
Профиль
Группа: Участник
Сообщений: 446
Регистрация: 8.2.2007
Репутация: нет
Всего: нет
Maksym, для exception breakpoint ты точки прерывания растявляешь после catch()<. или автоматом. Если второе, то как? Экран breakpoints и что именно?
| Дата 10.9.2007, 10:22 (ссылка) | (нет голосов) Загрузка . |
Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga
Репутация: 3
Всего: 12
Надо 4тобы модеры создали ве4но живущий топик. Типа под названием: «Всё об Eclipse» Вот туда бы все эти фокуси и постились бы. Ето сразу бы помогло бы форуму. Потому 4то много наве4ков каторые только на4инают. Спрашивают совсем глупые вопросы(Entry_N3 тебя не имелл ввиду). На4ать можно было бы с того как где стянуть,как поставить,какие версии еклипса есть и всё остальное. .

| Дата 10.9.2007, 10:25 (ссылка) | (нет голосов) Загрузка . |
Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea
Репутация: 12
Всего: 62
Entry_N3
Для exception breakpoint расставлять точки не надо — создаешь такое исключение и точка сама станет когда оно вывалится — можно в runtime оценить ситуацию, посмотреть состояние приложение в момент падения.
Для conditional breakpoint — на экране breakpoints заходишь в свойства точки и задаешь условие по которой на ней останавливаться. Это очень удобно если точка внутри цикла или внутри кода, который часто дергается кем-то, а проблемная ситуация возникает только в каком-то конкретном состоянии данных.
Добавлено через 45 секунд
Tony
Поддерживаю.








