gpt4 book ai didi

windows - 什么是 "double stack fault"?

转载 作者:可可西里 更新时间:2023-11-01 13:10:12 24 4
gpt4 key购买 nike

我最近阅读了以下有关 Windows 异常处理的内容。

In certain unhandled exceptions, such as a double stack fault, the operating system will immediately terminate the application without calling the unhandled exception filter or a JIT debugger.

什么是双栈错误?它与常规堆栈错误有何不同?

最佳答案

这句话大概出自这个Codeproject article .该站点在技术审查方面并不为人所知。 “双重故障”的真正含义与操作系统内核有关,当响应用户模式故障的内核故障处理程序本身出现故障时,就会出现双重故障。这是致命的并会引发内核 panic 。 Windows 上的蓝屏。同样存在于处理器中的是,x86 内核在遇到“三重故障”时会停止执行代码。

这里没有那么糟糕,他的意思在他的文章中描述的是程序由于堆栈溢出而崩溃的情况以及响应崩溃而运行的代码,例如注册UnhandledExceptionFilter(),消耗 Windows 提供给线程以尝试从 SO 恢复的堆栈的最后一位。这并不多,8192 字节(两页)可用少于 7080 字节。如果此类代码消耗了该储备,则表演结束,无法进行进一步的函数调用。内核引发访问冲突并无条件终止进程。

这个小的保留也是托管代码无法在 SO 中存活的原因,CLR 需要太多的堆栈空间来反射(reflect)异常,因此立即终止程序而没有尝试。关于保护页面 的通用背景文章,底层机制,is here .

关于windows - 什么是 "double stack fault"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11887046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com