配置 64 位内核时为什么无法启用“DEBUG_STACKOVERFLOW”?

配置 64 位内核时为什么无法启用“DEBUG_STACKOVERFLOW”?

我正在使用 menuconfig 设置 Linux 内核进行调试,但为什么 DEBUG_STACKOVERFLOW 似乎只适用于 32 位系统?在此输入图像描述

正如您在屏幕截图中看到的,启用 HAVE_DEBUG_STACKOVERFLOW 需要系统为 32 位。这是因为它在编译 64 位系统时默认启用吗?谷歌没有引导我找到任何答案

答案1

x86_64 曾经有堆栈溢出检查,但它们是将保护页添加到所有堆栈类型后将其删除。保护页提供可靠的溢出保护,不需要额外的检查,因此堆栈溢出检查是多余的。

相关内容