Eclipse - отладчик не останавливается в точке останова

Я пытаюсь разобраться с JUnit. В исходном коде я установил точку прерывания в двух местах: 1) в строке, где статический член инициализирован; 2) первая строка одного из тестовых случаев.

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

Любая помощь будет принята с благодарностью.

Я использую запуск Eclipse Galileo и JUnit4.

Ответ 1

Это может быть связано с одной из ошибок в JDK 6 Update 14, как указано в примечаниях к выпуску для обновления JDK 6 15.

Если это действительно проблема, вы должны перейти к более высокой версии JDK (это не гарантирует, поскольку, поскольку исправления были выпущены против 6u16, 6u18 и 7b1). Лучше всего использовать флаг -XX: + UseParallelGC. Увеличение размера минимального и максимального размера кучи, чтобы задержать первый GC, принести временный рельеф.

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

Ответ 2

Исправление может быть таким же простым, как щелчок, пропустить/пропустить все точки останова. Работал для меня.

Ответ 3

Убедитесь, что в разделе "Выполнить" > "Конфигурации отладки" выбрано "Стоп в главном", если это применимо к вашей ситуации.

Ответ 4

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

Перезапуск Eclipse, очистка всех проектов и восстановление всех, как правило, очищает вещи. У меня были также плагины Maven (более старые версии... не имели этого какое-то время), которые тоже имели тенденцию делать это.

В противном случае это может быть ошибка, возможно, заявленная Vineet,

Надеюсь, что это поможет

Ответ 5

Возможно, вы случайно пропустили все точки останова на панели инструментов Eclipse. Чтобы исправить это, перейдите в Eclipse → Run → Пропустить все точки останова.

Ответ 6

Проект → Чистый, казалось, работал у меня на JRE 8

Ответ 7

Для JDK7, run- > Debug Configurations установите флажок "Keep JUnit работает после тестового запуска при отладке".

Ответ 8

Случилось однажды, когда я снял флажок "Запустить > Создать автоматически" и забыл перепроверить его.

Ответ 9

Убедитесь, что вы объявили пакет вверху. В моем коде groovy это останавливается в точках прерывания:

package Pkg1

import java.awt.event.ItemEvent;

isMule = false

class LineItem {
    // Structure defining individual DB rows
    public String ACCOUNT_CODE
    public String ACCOUNT_DESC
...

Это не останавливается на контрольных точках:

import java.awt.event.ItemEvent;

isMule = false

class LineItem {
    // Structure defining individual DB rows
    public String ACCOUNT_CODE
    public String ACCOUNT_DESC
...

Ответ 10

Чтобы отладчик работал с удаленным, файлы java.class должны выполняться вместе с информацией об отладке. Если опция " -g: none" была передана компилятору, тогда файл класса не будет иметь необходимой информации, и, следовательно, отладчик не сможет сопоставить точки останова исходного кода с этим классом на удаленном компьютере. Между тем, если файлы jars/class были obfuscated, тогда у них также не будет никакой информации об отладке. Согласно вашим ответам, скорее всего, это не ваше дело, но эта информация может быть полезна для других, которые сталкиваются с той же проблемой.

Ответ 11

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

1 - Убедитесь, что открыта перспектива отладки:

отладчик eclipse не работает 1

2 - Убедитесь, что открыта функция отладки:

отладчик eclipse не работает 2

Ответ 12

Удалите все точки останова и снова добавьте их.

Ответ 13

Чтобы удалить точки останова:

  • Отладка вашего класса в качестве теста junit
  • Когда ваш отладчик остановится, перейдите на вкладку "точки останова" рядом с "переменными" и "выражениями"
  • В верхней правой части вкладки точки останова нажмите кнопку с двумя символами "X"
  • Остановите тест, замените точку останова и снова запустите отладчик.

Ответ 14

Еще один комментарий относительно ответа Винет Рейнольдс.

Я обнаружил, что должен был установить -XX:+UseParallelGC в eclipse.ini

Я настраиваю аргументы виртуальной машины (vm) следующим образом

-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms512m
-Xmx1024m
-XX:+UseParallelGC
-XX:PermSize=256M
-XX:MaxPermSize=512M

это решило проблему.

Ответ 15

Если ничего не работает -

  • Удалите эту конфигурацию удаленного/локального отладки и создайте новый.
  • Добавить источник в конфигурациях отладки.

Ответ 16

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

Ответ 17

Другая возможная проблема заключается в том, что порт отладчика может быть заблокирован брандмауэром. Например, я использовал mule anypoint studio (v 5.4.3). Порт отладчика по умолчанию - 6666. Когда поток выполняется, он не останавливается в точке останова. когда я изменил порт на другой (например, 8099), он работал нормально.

Ответ 18

Перейдите к Right click->Debug Configuration и проверьте, создано ли слишком много экземпляров отладки. Моя проблема была решена, когда я удалил несколько экземпляров отладки из конфигурации и только что начал отлаживать.

Ответ 19

Если вы находитесь на Eclipse,

Щелкните правой кнопкой мыши папку проекта в разделе "Проводник пакетов".

Перейти к источнику → Очистить и выбрать проект.

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

Ответ 20

Создание новой рабочей области для меня.

Ответ 21

В моем случае у меня было несколько проектов в одном рабочем пространстве. Файл java, который я пытался отлаживать, присутствовал в нескольких проектах с одним и тем же пакетом.

Мне не нужен другой проект, поэтому просто закрытые несвязанные проекты (или удалить файл из несвязанного проекта).

Ответ 22

Это то, что работает для меня:

Мне пришлось указать адрес локального сервера в конфигурации сервера PHP следующим образом:

enter image description here

Примечание: этот адрес - это тот, который я настраиваю в моем файле .conf Apache.

Примечание: единственной точкой останова, которая работала, была "Break on first line", после чего точки останова не работали.

Примечание: проверьте свойства xdebug в файле php.ini и удалите все, что вам кажется, не требуется.