Как работает обратная отладка?

GDB выпустила новую версию, которая поддерживает обратную отладку (см. Http://www.gnu.org/software/gdb/news/reversible.html ). Мне стало интересно, как это работает. Чтобы заставить работать обратную отладку, мне кажется, что вам нужно хранить все состояние машины, включая память для каждого шага....