首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qemu:跟踪MMU操作

Qemu:跟踪MMU操作
EN

Stack Overflow用户
提问于 2015-07-02 14:44:56
回答 3查看 1.7K关注 1票数 2

目前,我正在尝试运行qemu-system-arm for armv7体系结构,为分页做一些初始设置,然后启用MMU。

我使用gdb存根运行qemu并连接到它,然后连接到gdb。

我一定是把转换表/寄存器/等等搞砸了,我在控制寄存器中设置mmu启用位的那一刻,gdb就不能再从内存中提取数据了:在执行ni命令(执行mmu启用指令)之后,它不能获取下一个命令,我也不能访问内存。

有没有办法看看Qemu的MMU内部发生了什么?从哪里得到翻译表,计算什么等。

或者我应该用我的附加调试输出重新编译它吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-12 22:56:51

不,如果不自己修改QEMU的源代码来添加调试输出,就无法跟踪它。这是一个更普遍趋势的具体案例,即QEMU的设计和方法在很大程度上是“快速运行正确的代码”,而不是对可能有缺陷的客人的行为进行详细的反思。有时,就像在本例中一样,有一个很好的位置可以添加您自己的调试打印;有时,就像打印来宾所做的所有内存访问一样,C代码中没有任何地方可以将跟踪用于捕获所有访问。

票数 2
EN

Stack Overflow用户

发布于 2015-07-13 06:23:33

不,如果不自己修改QEMU的源代码,就无法跟踪这些

所以我就这么做了。对于ARM体系结构,相关代码可以在target-arm/helper.c - get_phys_addr*函数中找到.

票数 5
EN

Stack Overflow用户

发布于 2016-01-22 07:43:18

当我使用QEMU在与同事一起构建的操作系统内核中调试VM问题时,我最终将GDB连接到调试QEMU (而不是调试QEMU中的来宾进程)。

您可以在MMU表上放置断点,然后遍历它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31187709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档