Eclipse: отредактируйте источник и продолжите отладку

Я использую Eclipse IDE (версия Helios) Во время отладки в Eclipse можно ли отредактировать исходный код и продолжить отладку?

Например, у меня есть этот файл Во время отладки, когда я пытался изменить значение a4 во время отладки, не отражая

public class Tes {

    public static void main(String args[]) {
        int a4 = 15;

        for (int i = 0; i < a4; i++) {
            System.out.println(i);
        }

    }
}

Ответ 1

Да, возможно отредактировать источник и продолжить отладку в Eclipse! Вы найдете здесь обширную информацию: Отладка с помощью платформы Eclipse (прокрутите вниз до раздела Исправление ошибок Hotswap: On-the-).

Если вы используете виртуальную машину Java (JVM) V1.4 или выше, Eclipse поддерживает функцию "Исправление ошибок Hotswap" (недоступно в JVM V1.3 или ниже). Это позволяет изменять исходный код во время сеанс отладчика, который лучше, чем выход из приложения, изменение кода, перекомпиляция, а затем запуск другой отладки сессия. Чтобы использовать эту функцию, просто измените код в редакторе и возобновить отладку.

В некоторых случаях функция не работает. Например. если вы вносите изменения в переменную main метода a4, JVM не сможет удалить все стековые фреймы с использованием старого кода из стека вызовов. Данные отладчика будут потеряны.

Чтобы увидеть функцию Hotswap Bug Fixing JVM в действии, просто переместите код из вашего метода main в классе Test в какой-либо другой класс. Вот что я имею в виду:

Hotswap Bug Fixing in Action

Теперь вы можете изменить код "на лету" во время отладки в классе MyObject. Получайте удовольствие!

EDIT: Просто нашел аналогичный вопрос на superuser.com: Отладка в Eclipse, как запустить до точки останова

Ответ 2

Если вы запускаете свое приложение с использованием версии 1.3 JVM или более поздней версии, есть один последний шаг с запуском отладчика: - > измените проблемную строку - в вашем случае "значение a4", а затем сохраните файл, затем нажмите кнопку "Возобновить", чтобы снова запустить приложение.

Это сохранение этого конкретного java файла, который вы отредактировали во время отладки, заставит сеанс продолжить отладку с начала (конструктора) файла с новыми значениями.

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

Ответ 3

Если вы просто хотите изменить значение a5 во время отладки, это намного проще, чем изменить источник. Вы можете установить новое значение в представлении переменных, которое вы можете увидеть в перспективе отладки в Eclipse.

См. руководство здесь и здесь