Я уверен, что у многих из нас при отладке приложений периодически возникает желание отступить на шаг (или два, десять...) назад от текущей строки, чтобы увидеть причины происходящего в ней неправильного поведения. Чаще всего для этого приходится перезапускать отладку с начала и пытаться остановить исполнение программы чуть раньше, чем на предыдущей попытке. Затем надо пошагово приблизиться к предполагаемому месту с проблемой… упс, опять перешагнули! Начинаем всё по новой, ведь в дебаггере уже нельзя отступить назад даже на один шаг. Или можно?
Я хочу описать такую технику, как обратное исполнение (reverse execution), достаточные условия для её реализации и пример работы в симуляторе Wind River Simics. Полная статья доступна по адресу: http://habrahabr.ru/company/intel/blog/208908/