невозможно установить точки останова в затмении - PullRequest
7 голосов
/ 10 марта 2010

Я использую eclipse europa (3.5) на 64-битной Windows Vista Home Premium, используя JDK 1.6.0_18 (32 BIT).

Обычно я могу просто установить точки останова; Однако для определенного класса, который НЕ является частью проекта (этот класс находится внутри файла .JAR (файл .JAR является частью проекта)), хотя я прикрепил исходный каталог к ​​этому файлу .JAR, я не могу разместить точку останова в этом классе.

Если я дважды щелкну на панели точек останова (левая граница), я замечу, что точка останова класса размещена. Мне было интересно, если не было отладочной информации; Однако обнаружил, что этот конкретный класс был скомпилирован с использованием задачи ant / javac с использованием debug = "true" и debuglevel = "lines, vars, source". Я даже запустил jad для этого класса, чтобы подтвердить, что он действительно содержит отладочную информацию.

Итак, почему затмение мешает мне установить точку останова?

РЕДАКТИРОВАТЬ: просто чтобы все понимали контекст, это веб-приложение, работающее под tomcat 6.0. Я удаленно отлаживаю приложение от eclipse после запуска tomcat снаружи. Приложение работает просто отлично. Я пытаюсь понять поведение вышеупомянутого класса, которое я не могу сделать, так как Eclipse не позволяет мне установить BP.

P.S .: Я видел, как несколько потоков здесь говорили о том, что БП не бьют, но в моем случае я не могу установить БП!

P.P.S: я попробовал JDK 1.6.0_16 перед тем, как попробовать 1.6.0_18.

Спасибо за любые указатели.

Ответы [ 8 ]

4 голосов
/ 15 марта 2010

Попробуйте взглянуть на вашу конфигурацию Java-> debug-> Step filtering иногда он включен, и вы не можете остановиться внутри отфильтрованного пакета

2 голосов
/ 30 сентября 2014

При попытке добавить точки останова для страницы .jsp оказалось, что страница не открывалась с помощью редактора JSP, что препятствовало установке точек останова.

2 голосов
/ 10 марта 2010

Похоже, что Eclipse не может найти файл jar на пути к классам, хотя вы и говорили, что файл jar является частью проекта. Что произойдет, если вы запустите приложение нормально? Вы получаете ClassDefNotFoundException или что-то подобное?

Если вы посмотрите вкладки в конфигурации Run / Debug, вы сможете увидеть, какие пути и файлы JAR находятся в пути к классам во время выполнения. Вы также можете добавить файлы JAR, которые не нужны для сборки приложения, но необходимы для его запуска.

1 голос
/ 19 марта 2010

Используйте плагин под названием Jadclipse для декомпиляции jar во время выполнения, поместите точку останова в точку, где вызывается метод JAR, затем нажмите F6, и вы сможете перейти в свой метод JAR.

1 голос
/ 18 марта 2010

Мне известно об ошибке в eclipse, когда точки останова не работают с определенной версией jdk 1.6.x. Для получения дополнительной информации посмотрите здесь

1 голос
/ 17 марта 2010

, хотя я прикрепил исходный каталог к ​​этому файлу .JAR, я не могу поместить точку останова в этот класс.

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

0 голосов
/ 17 марта 2016

Простое обновление файла .jar помогло мне.

Мне удалось разместить точки останова во всех других файлах классов того же пакета, кроме одного. Я заметил, что когда я открыл этот файл класса в редакторе и выбрал «Связь с редактором», eclipse не привел меня к самому файлу этого класса, а только к пакету этого файла класса.

После обновления сработала «Связь с редактором», и я смог установить точку останова.

Если кто-то может объяснить это поведение, это будет полезно.

0 голосов
/ 20 апреля 2013

Шаг 1: переключить / включить точку останова Установите точку останова в строке кода или в точке входа метода, с которой вы хотите начать отладку кода. Щелкните правой кнопкой мыши на левом поле редактора рядом со строкой кода, и появится контекстное меню. Выберите точку останова в контекстном меню

Шаг 2. Настройка точки останова для остановки выполнения Чтобы начать отладку, выполнение должно остановиться на указанной точке останова. Для этого нажмите на свойства точки останова и сделайте следующее:

1. Check Hit count
2. Specify value as 1
3. Select “Suspend thread” option

Это остановит выполнение, когда программа достигнет точки останова.

Шаг 3: переключиться в режим отладки

В Eclipse выберите Окно -> Открыть перспективу -> Отладка

Шаг 4: запуск в режиме отладки

Теперь запустите программу в режиме отладки. Выберите Run -> Debug

Теперь программа запускается в режиме отладки, и вы увидите состояние потока как «работающее»

Когда программа достигает точки останова, состояние потока изменяется с «запущен» на «приостановлен»

Шаг 5: отладка кода с помощью выражений \ просмотр переменных \ проверка

Теперь код останавливается на точке останова. Вы можете использовать переменные наблюдения для выражения текущего значения переменной отладки. Предположим, вы установили точку останова на переменную с именем counter и программа остановилась на переменной counter Добавьте выражение с именем переменной «counter», которое позволит вам контролировать значение переменной во время выполнения программы. Вы также можете щелкнуть правой кнопкой мыши по переменной counter и выбрать «Inspect» из контекстного меню. Если это метод, выберите имя метода и нажмите «Step Into Selection». Это позволит вам построчно отслеживать или отлаживать выполнение метода.

Шаг 6: используйте клавишу F6, чтобы перейти к методу

Чтобы «войти» в следующую исполняемую строку кода в текущем методе, нажмите клавишу «F6». Это передаст управление программой от текущей строки к следующей исполняемой строке кода.

...