最佳答案
在 我之前的一个问题之后,大多数评论说“不要这样做,你正处于地狱边缘状态,你必须杀死一切,重新开始”。还有一个“安全”的解决办法.
我不明白的是内存区段错误本身就是不可恢复的。
捕获到受保护内存的写操作的时刻——否则,将不会发送 SIGSEGV
。
如果可以捕获写入受保护内存的瞬间,我不明白为什么——理论上——它不能在某种低级别上恢复,并将 SIGSEGV 转换为标准的软件异常。
请解释为什么内存区段错误后程序处于未确定状态,因为很明显,故障被抛出 之前内存实际上被更改了(我可能错了,不知道为什么)。如果它被抛出后,人们可以创建一个程序,改变保护内存,一次一个字节,得到分段错误,并最终重新编程的内核-一个安全风险是不存在的,因为我们可以看到,世界仍然存在。