2012-01-16 2 views
12

В Visual Studio во время сеансов отладки можно было перейти к строке, выбранной курсором, и выполнить эту строку. После перехода к этой строке вы можете продолжить отладку с той строки, в которую вы вскочили. Эта функция существует в мире Java/Eclipse?Во время отладки в Eclipse можно ли перейти к строке и выполнить ее во время отладки?

Например:

foo1();

foo2();

foo3();

return true;

В Visual Studio можно сломать foo1(), поместить курсор на foo3(), выполнить foo3() без выполнения foo2. Кроме того, когда отладчик остановлен на «return true», я могу поместить курсор на foo1 и снова выполнить foo1. Кроме того, я могу продолжать выполнять произвольные строки кода с помощью этих действий.

+2

Эта функция не существует. http://stackoverflow.com/questions/4864917/is-it-possible-to-go-back-in-java-eclipse-debugger-like-dragging-the-arrow-in – MedicineMan

+0

Интересно. Что произойдет, если вы скажете ему перейти вперед к строке и пропущенные строки, объявленные переменными, которые используются в строке, в которую вы прыгали? –

+1

, если это класс значений, переменная будет в области видимости, но будет иметь значение по умолчанию. Если тип ссылки, он будет инициализирован нулем. – MedicineMan

ответ

1

Да. Поместите точку останова на строку, нажмите F8, дождитесь, пока программа выполнится до этой строки, и нажмите F6, чтобы перейти к следующей строке, или F5, чтобы перейти в текущую строку.

EDIT:

После того, как поток приостановлен в отладчике, вы можете также выбрать некоторые исполняемым код, щелкните правой кнопкой мыши и выберите "Display" (CTLL-Shift-D) или "Выполнить" (Ctrl- U). Вы также можете использовать представление «Просмотр» для ввода любого оператора, его выбора и выполнения или отображения.

+6

Это полезный ответ, поскольку он документирует некоторые интересные функции Eclipse IDE. Однако он не ведет себя как IDE Visual Studio. На этот раз ответ на этот вопрос: «Нет, эта функция не существует». – MedicineMan

+0

Я действительно не вижу, как он отличается от того, что делает Visual Studio. Не могли бы вы быть более ясными? Вы пробовали это в Eclipse? Вы помещаете точку останова на 'foo1()' и 'return true', а затем приостанавливаете на foo1, вы выбираете' foo3() 'и нажимаете Ctrl-U, вы нажимаете F8 для перехода до возврата true, затем вы выбираете' foo1() 'и нажмите Ctrl-U. –

+1

Да, я пробовал это, как вы описали. Eclipse не является удобным для пользователя, если переменные определены как часть выполняемых строк.Рассмотрим: int startHere = 0; MyClass me = new MyClass(); foo (me); foo2 (me); , если вы пробиваете первую строку и выполняете третью строку, Eclipse жалуется, что я не определен. Кроме того, стрелка не переместилась в строку три, она все еще указывает на строку 1. Хотя вам удалось выполнить строку 3, выполнение не переместилось в строку 3, и хотя вы можете продолжать выделять строки и выполнять их, неуклюж. – MedicineMan

8

Нажмите на строку, которую вы хотите запустить, и нажмите Ctrl + R, и она будет работать на этой линии вместо того, чтобы вставлять тонны точек останова. Также вы можете использовать F8 для перехода к следующей точке останова или F6 для перехода к следующей строке.

+2

+1 для Ctrl-R, о котором я не знал. –

+0

Извините, я отредактировал ваш ответ, а не редактировал мой. –

+0

Ctrl + r - отличная возможность, вы никогда не перестаете учиться – Voo

Смежные вопросы