Как вернуться в отладчик Eclipse?



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

538   6  

6 ответов:

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

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

обновление:Хронон предоставляет коммерческий продукт, который он описывает как" DVR для Java", который, похоже, делает много того же, что и ODB.

помимо того, что было упомянуто в предыдущих ответах - т. е. eclipse's drop to frame feature в debug view, который перезапускает отладку ранее в кадре стека (но не возвращает глобальные / статические данные) и Всеведущий отладчик, который немного сырой и не так сильно развивается - есть несколько инструментов на основе Eclipse, которые можно использовать для "возврата" во время (выполнения):

JIVE расширяет отладчик Eclipse Java с возможностью записи состояний программы. Перспектива JIVE предоставляет некоторые полезные UML диаграммы, которые обновляются во время работы программы. Эти диаграммы предоставляют обзор состояния приложения (диаграмма объектов) и трассировки стека (диаграмма последовательностей). Вы можете запросить сохраненную трассировку и шаг назад и вперед во времени и увидеть соответствующие диаграммы.

Diver только записывает вызовы методов и на самом деле не записывает состояния программы, такие как JIVE. Каждое событие вызова метода сохраняется для последующего извлечения и анализа. Он расширяет Java Run и Debug конфигурации главным образом для того чтобы определить фильтры. Трассировка может быть приостановлена/возобновлена/отфильтрована во время выполнения. После записи перспектива дайвера может отображать ее в интерактивной диаграмме последовательности.

JIVE и Diver - это проекты с открытым исходным кодом, выпущенные из академических исследований. По состоянию на ноябрь 2012 года оба проекта являются активными.

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

все эти плагины довольно жадны в ресурсах, поэтому лучше иметь хорошую машину спецификации и использовать их функцию фильтра. Определенным требованием для их успешного запуска является расширить пространство кучи в eclipse.ini.

в моем случае я попытался использовать JIVE и Diver для отладки программа синтаксического анализа XML, но всегда заканчивалась замораживанием eclipse из-за нехватки ресурсов. Дайвер может быть сложно работать на linux 64bit, он работает на ubuntu 32bit и, возможно, других 32bit дистрибутивов с помощью эти советы. Diver работает на Windows, а еще лучше на Windows 64bit + 64bit JVM в противном случае вы будете ограничены максимальное пространство кучи 1,3-1,6 Гб на 32-битных окнах. JIVE отлично работает на моем linux 64bit и, похоже, отлично работает на других платформах.

да, Eclipse CDT имеет поддержку исторической функции отладчика.

открыть Настройки Отладка ->отладчик ->Включить Обратную Отладку при запуске .

чем вы можете нажать shift+F5 или shift+F6 на шаг назад, как F5 или F6 для шага вперед.

я предвзят, но Хронон делает именно то, что вы ищете.

Drop to Frame точно не отступает, так как если метод что-то изменил в куче, он не будет возвращен.

Я тоже искал эту функцию в eclipse. Я знаю, что visual studio может это сделать. На самом деле вы можете перетащить текущую строку маркера и падение в любом месте обратно в коде. Я не совсем уверен, что изменения переменных могут быть отменены. Но это все еще очень полезно даже так и экономит много времени. Я ждал этого в eclipse очень долго.

в вопросе не указан язык Eclipse, и многие ответы предполагают Java.

при использовании C++ и GCC с отладчиком GDB Eclipse имеет Run->Move to Line который выполняет эту работу и функционирует как Visual Studio Установить Следующий Оператор. В этом случае Eclipse использует возможность, которая находится в GDB.

Если вы используете Java, я не знаю, как это сделать с Eclipse или Netbeans, хотя другие ответы предложили Плагины. Затмение имеет "падение к frame " команда, которая работает для Java в моей версии (Juno SR1). Если я изменяю и сохраняю код внутри функции в режиме отладки, строка выполнения автоматически перемещается в верхнюю часть текущей функции, и я могу продолжить оттуда. Не то же самое, что указать строку, но это что-то.

Comments

    Ничего не найдено.