Какие отладчики поддерживают функцию "назад/назад" / "назад в срок"?

Если возможно, опишите поддерживаемые платформы/языки/символические форматы и если предоставлена ​​полная поддержка (исторические состояния) или частично (только код может перезапускать без сохранения состояний).

Дополнительная информация о производительности или необходимых ресурсах приветствуется, но необязательна.

Ответ 1

Новая функция отладочного IntelliTrace в Visual Studio 2010, похоже, соответствует тому, что вы просите. См. Отладка с помощью IntelliTrace:

Отладка с помощью IntelliTrace, доступная в Microsoft Visual Studio 2010 Ultimate, обеспечивает улучшенную картину вашей заявки по сравнению с традиционные отладчики. традиционный отладчики показывают состояние вашего приложения в настоящее время с ограниченная информация о событиях, которые произошло в прошлом. Вы должны либо вывести события, которые произошли в прошлое, основанное на состоянии вашего приложения в текущее время или перезапустить приложение для повторного создания прошедшие события. С IntelliTrace вы действительно могут видеть события, которые произошли в прошлом и в контексте, в котором они произошли. Это уменьшает число перезапуска, которые необходимы для отладки ваше приложение и возможность что ошибка не сможет воспроизвести при повторном запуске приложения.

Ответ 4

Chronon для java поддерживает полный отступ и просмотр всей информации о состоянии в любой момент времени.

Ответ 5

PythonTutor (http://pythontutor.com/) Позволяет делать это для небольших примеров кода на нескольких языках программирования.

Ответ 6

р. Схема, также известная как PLT Scheme, позволит вам шаг назад и вперед в программе Scheme. Полная поддержка для поддержания состояния, насколько я могу судить, хотя я его мало использовал. Работает в Windows, Mac и Linux.

Ответ 7

Я никогда не использовал отладчик со способностью отступать назад. Я просто выполнил поиск в Google и не нашел много...

Я нашел это: http://video.google.com/videoplay?docid=3897010229726822034

Поиск "отладчика Билла Льюиса" привел меня к: http://undo-software.com/undodb_about.html

Возможность перехода назад подразумевает сохранение большого количества состояний: если вы меняете переменную в одной строке кода, а затем вы хотите отступить назад, предположительно переменная должна вернуться к ее предыдущему значению. Если вы меняете регистр, он должен вернуться к своему предыдущему значению и включать в себя регистр флагов. Если вы выделили память, по-видимому, она должна быть выделена. И так далее. Это большая работа в целом. Похоже, этот отладчик использует технологию copy-on-write, чтобы на самом деле все это сделать. Я предполагаю, что возможно виртуальная машина, такая как VirtualBox, и так.

Это еще не основная функция. Одной из особенностей, которую я обычно видел, является способность "установить следующую строку". Предположим, вы вызываете функцию, и она возвращает значение, которое вас удивляет; вы устанавливаете "следующую строку" в строку перед функцией, а затем одноступенчатую в функцию. Отладчик Microsoft Visual Studio может это сделать, и поэтому может gdb (команда jump). Эта способность ограничена, если функция повреждает стек. Тогда вам действительно нужно начать все сначала!

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