Перемещение указателя инструкций при отладке Java в Eclipse - PullRequest
51 голосов
/ 30 октября 2009

Могу ли я переместить указатель инструкции непосредственно на строку по своему выбору (в рамках текущего метода) при отладке Java-программы в Eclipse (Galileo)?

Просто перетащить указатель инструкции на нужную строку в методе в Visual Studio, но я не вижу способа сделать это в Eclipse (и ничего не нашел в документации или в Google). .

Ответы [ 10 ]

30 голосов
/ 11 марта 2012

Это возможно ...

http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.jdt.doc.user/tips/jdt_tips.html

Переход к кадру - при переходе по коду вы можете иногда заходить слишком далеко или переступать черту, на которую вы хотели перейти. Вместо того, чтобы перезапустить сеанс отладки, вы можете использовать Drop to Действие кадра, чтобы быстро вернуться к началу метода. Выбрать кадр стека, соответствующий методу Java, который вы хотите перезапустить, и выберите Drop to Frame из панели инструментов представления отладки или из фрейма стека контекстное меню. Указатель текущей инструкции будет сброшен на первый исполняемый оператор в методе. Это работает для не верхнего стека кадры.

Обратите внимание, что Drop to frame доступен только при отладке с 1.4 или выше VM, или J9 VM. В некоторых ситуациях JVM может быть невозможно извлечь нужные кадры из стека. Например, это как правило, невозможно опустить на нижнюю рамку стека или любой кадр ниже нативного метода.

15 голосов
/ 30 октября 2009

Это невозможно.

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

1 голос
/ 03 января 2018

Перемещение указателя, как в Visual Studio, невозможно, однако обходные пути:

Возвращаясь к началу текущего выполняемого метода: Выберите метод из стека отладочных вызовов, щелкните правой кнопкой мыши -> «Переместить в кадр» и вуаля ты вернулся в начале метода.

Теперь, чтобы достичь желаемой строки, выберите строку, щелкнув по ней, и нажмите Ctrl + R или щелкните правой кнопкой мыши на строке и выберите «Run to line».

Эти методы чрезвычайно полезны и значительно сокращают усилия по отладке, наслаждайтесь!

0 голосов
/ 03 мая 2018

Уловка, которую я использую, состоит в том, чтобы ввести пробел в вашем классе, где-нибудь в безопасности, например, в строке комментария; немедленно удалите его и сохраните класс. Это заставит точку выполнения перейти к началу вашего текущего метода. Признаюсь, это не идеал, но иногда его можно использовать в качестве обходного пути для достижения того, чего вы хотите.

Хотя в стандартной установке eclipse невозможно напрямую переместить точку выполнения, как в Visual Studio, может существовать плагин eclipse, который где-то предоставляет эту функциональность. Ищите вокруг.

0 голосов
/ 15 сентября 2015

Просто щелкните правой кнопкой мыши на нужной строке и выберите команду «Запустить на линию». Вот и все ...

0 голосов
/ 24 июня 2015

к сожалению, невозможно продвинуться вперед с помощью указателя инструкций (счетчика программы), поэтому вместо этого вам нужно ввести собственные «отладочные» переменные, которые вы можете проверить - допустим, вы хотите обойти цикл, который принимает слишком долго, затем добавьте переменную и проверьте ее увеличенное значение, а затем инкапсулируйте цикл в if с этой переменной. Я знаю, что это некрасиво, но это делается - или вы могли бы просто разработать на C ++ :-)

0 голосов
/ 26 октября 2012

Вы можете перейти непосредственно к любому другому вызову метода внутри текущего отлаженного метода. Выберите вызов некоторого метода под указателем текущей инструкции и используйте « Шаг в выделение » из контекстного меню.

0 голосов
/ 24 августа 2012

Я думал, что это вполне возможно в более старых версиях Eclipse, я думал, что у меня есть память, чтобы сделать это, но я думаю, что я просто имплантировал эту память, когда работал в Visual Studio. Из того, что я читаю, это может прийти к jvm, а не к самому затмению, есть страницы, где предполагается, что jvm не может с этим справиться.

По моему мнению, Eclipse во много раз лучше, чем VS, я много работал в обоих, и с тех пор, как я обнаружил Eclipse, мне всегда было больно, когда мне приходилось работать в VS. Но отсутствие этой функции определенно больно прямо сейчас, хе-хе.

0 голосов
/ 30 октября 2009

Мне больше нравится ответ ankon, но другой вариант (который будет работать только для вашего конкретного экземпляра - если это так) - остановиться на точке останова на вашем if и изменить переменную (переменные), вычисленную в условном выражении, так, чтобы возвращает false (из представления «Переменные» щелкните правой кнопкой мыши переменную и выберите «Изменить значение ...»)

0 голосов
/ 30 октября 2009

Поместите курсор на нужную строку и нажмите Ctrl-R («Выполнить до строки») или щелкните правой кнопкой мыши и выберите «Выполнить до строки» из контекстного меню.

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