首页 > 试题广场 >

在调试一个因栈溢出而偶发性崩溃的系统时,开发者将 FreeR

[单选题]
在调试一个因栈溢出而偶发性崩溃的系统时,开发者将 FreeRTOS 的栈溢出检测配置项 `configCHECK_FOR_STACK_OVERFLOW` 设置为 2。关于此设置的描述,以下哪项是正确的?
  • 仅在任务切换时检查任务栈指针是否超出了栈的末端,开销最小但可能漏检。
  • 在任务创建时向其栈空间写入一个已知“水印”模式,并在每次任务切换时检查该模式是否被破坏。
  • 依赖于硬件 MPU (内存保护单元) 来捕获非法的栈内存访问,并产生一个 fault 异常。
  • 在每次函数调用时,由编译器插入额外的代码来检查栈顶标记,提供最强的保护但性能开销巨大。

这道题你会答吗?花几分钟告诉大家答案吧!