2015-11-03 2 views
1

Я отлаживаю свое приложение в Eclipse. Наконец, я достиг точки останова в состоянии, которое вызовет ошибку в следующей строке кода.Как пропустить выполнение строки кода?

Из-за взломанного изменения класса наиболее вероятным решением было бы удалить эту строку кода.

Конечно, я мог бы сделать это сейчас: удалите строку, перекомпилируйте и снова воспроизведите ситацию. Однако, поскольку трудно воспроизвести ошибку, могу ли я просто пропустить выполнение этой строки кода сейчас? Например. могу ли я установить «указатель инструкции» в Eclipse?

Что я сделал:

  • Я не хочу F6 (Step Over), так что будет выполнять линию.
  • Также «Run to cursor» не то, что я хочу, так как это также приведет к проблемной строке.
  • Закомментируйте кода согласно How to modify Java code during debugging, но повторно выполняется метод, тем самым изменяя состояние
  • Я попытался найти ответ на this question, но я не только хочу, чтобы запустить одну строку кода но все остальное.
  • This question имеет только ответы, между которыми выполняется код.
  • Функция drop to frame также не помогает.

Связанные вопросы заданы с 2009 по 2013 год, поэтому я надеюсь получить новые ответы.

Я использую Eclipse 4.5.1 (Mars.1), последнюю официальную версию на момент запроса.

+0

Вы можете просто прокомментировать эту строку при отладке –

+0

Как насчет try-catch? И поместите точку останова в выводе. Это будет останавливать точку останова за исключением каждый раз – Tim

+0

@Tim: нет исключения –

ответ

2

Если вы хотите выполнить линию после той, которую хотите пропустить. Когда вы дойдете до линии до пропущенной строки, выберите код и щелкните правой кнопкой мыши, выберите «Осмотреть» в меню. Это выполнит выбранный код и предоставит вам результат во всплывающем окне.

Если вы знаете строки, которые необходимо пропустить. вы можете поместить их в оператор if и изменить значение логического в представлении переменных в eclipse. Затем переходите к другим строкам. (используя код от комментариев)

if (skipped){ 
    //yourcode 
    }; 

Также можно создавать выражения в затмении.

Одна вещь, которую я пропустил, - это eclipse, также поддерживает обмен горячим кодом. Вы можете прокомментировать строку и сохранить ее. Он отключит управление отладчиком до начала метода. Функция Hot deploy поддерживает только изменения кода в реализации метода. Если вы добавляете новый класс или новый метод, перезагрузка по-прежнему требуется. Если у вас есть сервер в eclispe, вот как вы можете это сделать http://www.mkyong.com/eclipse/how-to-configure-hot-deploy-in-eclipse/

+0

Я использую этот метод, и это полезно.Просто создайте if (skipped) {// yourcode}; И откройте Expression, change skipped = true или skipped = false – hurricane

+0

Это опасно: если вы это сделаете во время отладки, вы можете забыть об изменениях и случайно их совершить и стать частью продукта. (Надеюсь, юнит-тест поймает его) –