区分x86_64 MMU上的代码和数据页

时间:2014-05-27 21:50:56

标签: x86 paging qemu

我正在尝试在系统仿真模式下分析qemu。目标是能够识别页面错误,并将它们分类为数据页面错误或代码页错误。

在研究了x86_64架构(这是被模拟的)之后,我无法区分代码页和数据页。 MMU是否区分它们?

1 个答案:

答案 0 :(得分:1)

发生页面错误时,请使用处理器推入堆栈的错误代码来确定故障原因。这在图6-9中Software Developers Manual的第3A卷中有所描述。具体来说,I / D位指示取指令是否导致故障。

- 编辑 -

CPU在标准异常堆栈帧之后将错误代码推送到管理程序堆栈。有关堆栈帧的图片,请参见“程序员参考”中的图6-8。当控制转移到处理程序时,ESP指向错误代码。