Подтвердить что ты не робот

Почему я не могу перетащить точку выполнения в IntelliJ (я могу в Visual Studio)

В Visual Studio при отладке можно перетащить точку выполнения (текущий указатель инструкции, желтую точку) в другое место в текущем методе.

Это невозможно в IntelliJ, а некоторые заявили, что это вообще невозможно в Java. Почему?

4b9b3361

Ответ 1

IntelliJ взаимодействует с работающей JVM через стандартный интерфейс отладки Java, поэтому он может отлаживать программы "против разных JDK". Это не поддерживает перемещение точки выполнения вокруг, когда вы описываете.

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

Примечание: это не приведет к откату состояния объектов, поэтому могут возникнуть странные эффекты.

Ответ 2

В Eclipse, если вы отредактируете отлаживаемый метод, чтобы обновить отладочный код, JVM откатывает выполнение в первое безопасное место. Обычно это первая строка в этом методе.

Это очень полезно в сценарии отладки.

Ответ 3

Вы можете сказать отладчику "Переместить в линию" вперед.

Ответ 4

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

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