Блог пользователя Izot_NNSTU

Автор Izot_NNSTU, 13 лет назад, По-русски

Не первый раз сталкиваюсь с проблемой в IDE Eclipse: некорректно работают функции отладки.

Отладчик заходит в функции, несмотря на то, что используешь Step Over (F6), останавливается в рандомных местах до поставленного брейкпоинта. Каких либо закономерностей в этом поведении не замечено. У кого-нибудь были подобные вопросы, есть ли способы научить Eclipse нормально дебажить?

Добавлено:

Забавно, только что случайно обнаружил решение... Дело в том, что я привык создавать новый проект для каждой задачи (точнее копировать заготовку с методом main и вводом). Все классы в них называются одинаково — Solution. Так вот, брейкпоинты из старых задач я не убирал. Видимо Eclipse имеет такой баг — в отлаживаемой программе использовались брейкпоинты из других программ, не имеющих к ней никакого отношения.

Волшебная кнопочка Remove All Breakpoints избавила меня от проблем =)

  • Проголосовать: нравится
  • +7
  • Проголосовать: не нравится

13 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится
У нас в Eclipse были другие проблемы - что иногда он умудряется начинать дебагать программу, не перекомпилировав её. Т.е. можно пошагово дебагать программу и наблюдать, как курсор текущей команды гуляет по пустым строкам или комментарями :-D
  • 13 лет назад, # ^ |
      Проголосовать: нравится -6 Проголосовать: не нравится
    Free software, ничего не скажешь...
  • 13 лет назад, # ^ |
      Проголосовать: нравится -10 Проголосовать: не нравится
    Ну это ж не только у эклипса... Этому волшебству в той или иной степени подвержены все или почти все среды... Хм... Я ещё в школьные годы в Борланд Паскале это увидел. В эклипсе всё это магичным образом от настройки сборки (авто / не авто) зависит, типа проекта и т.п. %)

    Хотя точно помню есть известный баг - при использовании эклипса для сборки веб-приложений, если автосборку отключить, он почти всегда "забывает" файлы классов подложить в сборку. Очень глупо выглядит. Но этот баг к спортивным задачам вряд ли отнсится... ;-)
    • 13 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится

      Ну да, хорошое сравнение - Borland Pascal и Eclipse ;)

      Вообще вспоминаю время, когда мы во время подготовки к Финалу всё писали на Eclipse, как садо-мазо-развлечения :-D

13 лет назад, # |
  Проголосовать: нравится +31 Проголосовать: не нравится
Да, есть такая особенность. Дело в том, что Eclipse не знает какие проекты запущены в данный момент. Из-за этого он и реагирует на брейкпоинты во всех классах с тем же именем. Можешь почитать комментарии к соответствующим багам:
»
12 лет назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

А мне ваше решение не помогают. У меня ситуация немyого сложней. Мы разрабатываем через svn и программа постоянно на одном месте breakpoint'ится (если такое слово есть). И remove all breakpoints не помогает, проект с таким именем у меня один. Самое ужасное, что функция в которой стоит breakpoint вызывается много раз. Нет идей?

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +10 Проголосовать: не нравится

    Причём тут svn?

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится -8 Проголосовать: не нравится

      При том, что я забираю чужие проекты. Изначально.

      И совершенно непонятно по какой причине, программа при отладке стопиться в определенном месте (в котором у меня нет breakpoint). Так, что я предположил, что может быть что-то передается через SVN во время update.

      Я понимаю, что проще минусовать, чем найти реальное решение, но было бы всё-такие интересней мне послушать версии, почему такое может случаться.

      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится

        вроде бы все брейкпойнты хранятся в воркспейсе в папке .metadata, а её на svn никогда не кладут