Отладить выражение оценки по intellij

Использование выражения выражения/фрагмента кода:

https://www.jetbrains.com/idea/help/evaluating-expressions.html

Можно ли отлаживать оцененное выражение/фрагмент кода на intellij?.

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

Intellij, похоже, запускает выражение в другой сессии.

Мой рабочий процесс заключается в том, чтобы остановить "любую строку" кода и добавить фрагмент, который я хочу оценить для отладки Q & D. Много раз это приводит к перезапуску отладки.

Ответ 1

К сожалению, это невозможно в Intellij 14 и указано в официальной ссылке, которую вы указали:

Если метод, вызываемый в Expression Evaluation, имеет точку останова внутри своего тела, эта точка останова будет проигнорирована.

Чтобы устранить проблему, о которой вы говорили при частом перезапуске сеанса отладки, я использую следующую работу с функцией отладки кадрового фрейма:

  • Чтобы перейти к методу и перед возвратом, используйте функциональность drop-frame, чтобы вернуться к предыдущему стеку стека. См. Расположение значков капли на скриншоте ниже: введите описание изображения здесь
  • Теперь можно повторно запустить этот метод с разными параметрами без перезапуска сеанса отладки (параметры могут быть установлены с помощью диалогового окна "Вычисление выражения" ).

Ответ 2

Эта функция недоступна в IntelliJ IDEA 2019.2

Обходное решение, которое я использую, - обновить код следующим образом:

                    Boolean shouldExecute = false;
                    if(shouldExecute){
                        //method call
                    }

Во время сеанса отладки я изменю флаг shouldExecute на true. Таким образом, я могу отладить вызов метода при необходимости.

Конечно, это просто обходной путь, мне нужно убрать этот флаг позже.