2011-02-01 48 views
1

我有一个疑问,这是这样的 -工艺处理堆栈溢出

假设一个过程检测和保护它的堆栈区域边界有写保护页面处理堆栈溢出。因此,由于堆栈溢出而导致对此页面的任何写入都将导致生成SIGSEGV信号。

但是由于进程堆栈已经溢出,SIGSEGV的信号处理程序如何执行?

这是一个概念性问题。希望我会找到一些答案。提前致谢。

回答

1

通常,您切换到单独的堆栈以运行信号/异常处理程序。大多数情况下都以内核模式运行,并且(至少通常情况下)内核模式中的任何内容都不会在用户模式堆栈中运行。