it-swarm.com.ru

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

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

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

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

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

90
Roy

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

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

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

39
Vineet Reynolds

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

91
user1164035

Убедитесь, что в разделе Run> Debug Configurations выбран "Stop in main", если это применимо к вашей ситуации.

50
Answerer

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

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

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

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

19
Newtopian

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

17
Jigna.Shah

Project -> Clean, похоже, работает на меня на JRE 8

3
JH95

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

2
Raffi Khatchadourian

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

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
...
1
Don Harrington

Для JDK7, запустите-> Debug Configurations, отметьте "Оставить JUnit включенным после тестового запуска при отладке".

1
Frank Fu

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

1
Mathiouss

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

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

Eclipse debugger not working 1

2 - Убедитесь, что у вас открыт режим отладки:

Eclipse debugger not working 2

1
Dani

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

1
sergeyan

для удаления точек останова :

  1. Отладка вашего класса как тест джунта
  2. Когда ваш отладчик остановится, перейдите на вкладку "точки останова" рядом с "переменными" и "выражениями"
  3. В правом верхнем углу вкладки точки останова нажмите кнопку с двумя "X"
  4. Остановите тест, замените точку останова и снова запустите отладчик
0
Cyrois

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

  1. Удалите эту конфигурацию удаленной/локальной отладки и создайте новую.
  2. Добавьте источник в конфигурации отладки.
0
kanaparthikiran

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

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

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

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

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

0
Amir Pauker

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

0
Henno Vermeulen

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

0
priyanka_rao

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

0
RuntimeException

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

0
Ahmed Tawila

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

Щелкните правой кнопкой мыши папку вашего проекта в "Package Explorer".

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

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

0
Sureshbabu E

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

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

0
Shanu Gupta