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