Как работает раскрутка стека в C++?
Никак не могу понять последний этап раскрутки стека.
Допустим, есть функции А
, B
, C
. Вызываются они также: A->B->C
.
В функции C
выбрасывается исключение, запускается некая функция рантайма по поиску обработчика сначала во фрейме функции С
, если не находит обработчик исключения, содержимое фрейма С
затирается, потом ищет в B
и стирает его фрейм в стеке, а обработчик находится в функции A
, обработчику которой нужно передать управление.
Как затирает свой фрейм функция рантайма, которая раскручивает стек после того, как найдет нужный обработчик?