Отладчик Eclipse (Helios) - получение разных результатов в режиме отладки и в режиме выполнения - PullRequest
1 голос
/ 30 ноября 2011

Я отлаживаю RCP (многопоточное приложение с графическим интерфейсом), используя Eclipse Helios.

Когда я выполняю тот же метод, я получаю исключение нулевого указателя в режиме выполнения, но в

режим отладки, я не получаю никаких исключений. Я думаю, что он отлично работает в режиме отладки.

Исключение нулевого указателя не приходит в режиме отладки, но только в режиме выполнения ..

Пожалуйста, помогите мне. Может ли это быть проблема многопоточности.

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

Различное поведение в режиме запуска и отладки не является необычным.Однажды я потратил день на то, чтобы у toString () были побочные эффекты.Отладчик вызывает этот метод при отображении переменных.Другой причиной различий является параллелизм.Порядок выполнения в отладчике может отличаться от режима выполнения.

1 голос
/ 30 ноября 2011

Вы можете добавить точку останова к строке, в которой NPE произошел в режиме выполнения. И вам нужно установить свойство точки останова, чтобы приостановить весь vm.

Затем при отладке вашей программы весь vm будет приостановлен, когда поток попытается выполнить эту строку. Вы можете разрешить другим потокам, которые не пытаются выполнить эту строку, возобновиться, второй поток также будет приостановлен на этой строке. Вы можете проанализировать недостатки вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...