gpt4 book ai didi

exception - 页面错误、页面短缺或访问冲突?

转载 作者:行者123 更新时间:2023-12-03 06:53:10 27 4
gpt4 key购买 nike

众所周知,访问内存中不存在的页面会导致页面错误,但是写入只读页面也会导致页面错误?如何在异常处理程序中识别两种类型的页面错误?

最佳答案

在调用页面错误处理程序之前,您读取 CPU 放置在堆栈上的异常错误代码。该错误代码包含 5 位,您对其中的 4 位感兴趣:

  • P=0:错误是由不存在的页面引起的。
    P=1:故障是由于页面级保护违规引起的。
  • W/R=0:导致故障的访问是读取。
    W/R=1:导致故障的访问是写入。
  • U/S=0:导致故障的访问源自处理器正在以主管模式执行。
    U/S=1:导致故障的访问源自处理器正在用户模式下执行。
  • I/D=0:故障不是由取指令引起的。
    I/D=1:取指令导致故障。

如果 P=0,则该页面不存在。

如果P=1,则权限不足以访问该页面。 U/S 会告诉您它是在内核还是应用程序中。 I/D 告诉您是否是因为代码指令读取(读/写数据)。 W/R 告诉您是否正在读取或写入无法完成。

英特尔® 64 和 IA-32 架构软件开发人员手册第 3 卷:系统编程指南的中断 14 - 页面错误异常 (#PF) 部分对此进行了描述.

关于exception - 页面错误、页面短缺或访问冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9759439/

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