Operating system 进程处理堆栈溢出

Operating system 进程处理堆栈溢出,operating-system,stack-overflow,signals,Operating System,Stack Overflow,Signals,我有一个这样的疑问- 假设进程通过使用写保护页保护其堆栈区域边界来检测和处理堆栈溢出。因此,由于堆栈溢出而对该页进行的任何写入都将导致生成SIGSEGV信号。 但由于进程堆栈已经溢出,如何执行SIGSEGV的信号处理程序??? 这是一个概念性的问题。希望我能找到一些答案。提前谢谢 通常,切换到单独的堆栈以运行信号/异常处理程序。无论如何,大多数都是在内核模式下运行的,并且(至少正常情况下)在任何情况下,内核模式下的任何东西都不会从用户模式堆栈中运行。通常,您会切换到单独的堆栈来运行信号/异常处理

我有一个这样的疑问-

假设进程通过使用写保护页保护其堆栈区域边界来检测和处理堆栈溢出。因此,由于堆栈溢出而对该页进行的任何写入都将导致生成SIGSEGV信号。

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


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

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

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