我正在尝试在系统仿真模式下分析qemu。目标是能够识别页面错误,并将它们分类为数据页面错误或代码页错误。
在研究了x86_64架构(这是被模拟的)之后,我无法区分代码页和数据页。 MMU是否区分它们?
答案 0 :(得分:1)
发生页面错误时,请使用处理器推入堆栈的错误代码来确定故障原因。这在图6-9中Software Developers Manual的第3A卷中有所描述。具体来说,I / D位指示取指令是否导致故障。
- 编辑 -
CPU在标准异常堆栈帧之后将错误代码推送到管理程序堆栈。有关堆栈帧的图片,请参见“程序员参考”中的图6-8。当控制转移到处理程序时,ESP指向错误代码。