2011-02-01 5 views
1

У меня есть сомнения, который идет как это -процесс обработки переполнения стека

Предположим, что процесс обнаруживает и обрабатывает переполнение стека, защищая ее границы стека область с защитой от записи страницы. Таким образом, любая запись на эту страницу из-за переполнения стека приведет к генерированию сигнала SIGSEGV.

Но поскольку стек процесса уже переполнен, как можно выполнить обработчик сигнала для SIGSEGV ????

Это концептуальный вопрос. Надеюсь, я найду ответы. Заранее спасибо.

ответ

1

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

Смежные вопросы