Ответ 1
Стол вызовов вашего приложения можно просмотреть в отладчике. Используя функциональность "Drop Frame", вы можете "вернуться" к предыдущей структуре стека, в некотором смысле возвращаясь во времени. Это может быть полезно для повторного ввода функции, если вы пропустили критическое место, которое вы хотели бы видеть снова.
Как видно из названия "Stack Frame", изменения, которые уже были сделаны в глобальном состоянии (например, статические переменные, изменения значений полей и т.п.), не будут отменены, а только локальные переменные reset. Это может привести к другому пути выполнения, чем тот, который изначально привел к вашей точке разрыва. Вы должны знать об этом - я часто считаю его полезной функцией для изучения различных путей выполнения без необходимости перезапуска приложения или определенного длительного процесса, который привел к текущему стеку. В сочетании с изменением значений переменных, доступных также через отладчик, вы можете делать всевозможные интересные вещи.
Обратите внимание, что, конечно, любые побочные эффекты, которые могли произойти, - e. г. сетевой трафик, манипуляции с файлами, выход на консоль и т.д. - невозможно перематывать.