Приложение Eclipse SWING: точка останова попадает только после создания необработанного исключения - PullRequest
6 голосов
/ 22 июня 2009

У меня действительно странная проблема. Я работаю над приложением Java SWING в Eclipse. Я устанавливаю точку останова где-то в моем коде, затем запускаю отладку. Я выполняю часть кода, содержащую точку останова, но она всегда пропускается. Как только я запускаю некоторый код, который генерирует необработанное исключение, точки останова снова начинают действовать, ничего не меняя. Код, который выдает исключение, и код, содержащий точку останова, не связаны.

Я пытался установить точки останова в нескольких местах, но они никогда не получат удар, пока не будет сгенерировано исключение. У меня есть эта проблема только для этого одного конкретного приложения. Мой отладчик отлично работает для других приложений SWING.

Можете ли вы вспомнить причину, по которой это произошло?

Ответы [ 2 ]

7 голосов
/ 22 июня 2009

Какую точную версию Eclipse и Java вы используете?

Вам известен этот вопрос ? ( ошибка 279137 : точки останова не достигают JDK 1.6.0_14)


Как отмечает gojomo в комментариях, этот баг (279137) сейчас (21 июля 2009 г.) упоминает:

Ошибка теперь видна в базе данных ошибок Sun: ошибка 6862295 .

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

Работа вокруг

Использование опции -XX:+UseParallelGC делает сбой не воспроизводимым ни для клиентской виртуальной машины, ни для виртуальной машины сервера.

(опция добавляется в eclipse.ini )

Я бы порекомендовал вам использовать функцию «посмотреть эту ошибку», чтобы вы могли получать уведомления об обновлениях этой ошибки. Вот ссылка для просмотра этой конкретной ошибки


FIXED

Как отмечается в выпуске jdk6_u16 (конец августа 2009 г.), эта ошибка была исправлена ​​

Исправлена ​​ошибка в этом выпуске:

6862295 Изменения нити JDWP во время сеанса отладки (приводящие к игнорируемым точкам останова)

0 голосов
/ 22 июня 2009

Вы запускали графический интерфейс в отдельном потоке? Я не распознаю вашу конкретную проблему, но многие странные проблемы исчезли, как только я начал использовать этот код из учебных пособий по Java:

SwingUtilities.invokeLater(new Runnable() {
    public void run() {
        createAndShowGUI();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...