c - xv6 rev6 页面错误处理程序

标签 c unix assembly operating-system x86

我在 xv6-rev6 源代码中找不到页面错误处理程序。是我错过了还是根本没有页面错误处理程序?我确实在 Traps.h(工作表上的第 2817 行)中找到了“#define T_PGFLT 14//page failure ”,但除了第 2817 行之外,我在任何地方都找不到它。

最佳答案

异常处理从vector14()开始,它在vector.S中定义,由this Perl script生成。 .

vector14() 然后将控制权转移到 alltraps() ,这是所有进一步异常和系统调用处理的公共(public)入口点。

alltraps() 最终调用 C 处理程序 trap() ,它分析事件并调度适当的处理程序(系统调用、I/O、异常)。

trap() 调用 pgfault_handler()处理页面错误。

关于c - xv6 rev6 页面错误处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12473968/

相关文章:

char* 到 char[] - 有必要吗?

regex - 如何用sed替换文件中具有特定模式的单词?

c - 重置 gcc 的 asm 内联输入

performance - 为什么循环总是编译成 “do…while”样式(尾跳)?

将 apr_time_t 转换为不同的 int 类型

c - Truecrypt源代码文件

c - 仅当我对最近添加的头文件进行函数调用时链接器错误

unix - 函数获取当前进程 UNIX 的终端文件描述符

linux - 'set -- $REPLY' 是做什么的?

assembly - 为什么需要 '20, 22' 'string DB 20, 22 dup(' 中的 ?')' ?