gpt4 book ai didi

x86 - 是否可以设置在 cpu 写入特定地址时中断的中断?

转载 作者:行者123 更新时间:2023-12-04 01:03:58 24 4
gpt4 key购买 nike

是否可以在写入特定地址时使 x86 cpu 中断?

我想要一个硬件机制来监控一些地址的变化。

最佳答案

I would like to know if it is possible to make x86 cpu intrrupt when specific address is being written??

这是可能的。

您可以将其中一个调试寄存器(DR0DR4)设置为您要监视的地址,然后在 DR7< 中配置相应的标志 作为“全局断点,在数据写入时中断,1 字节大小”。一旦完成,该 CPU 完成的任何正常数据写入都将触发调试异常(中断 1),并且调试异常处理程序可以弄清楚发生了什么并执行您想要的任何操作(例如,向用户报告写入?)。

但是,有一些限制——你不能在用户空间自己做这件事,需要依赖内核的支持;并且内核的支持希望包括在任务切换期间保存/恢复调试寄存器(这样当您的任务在另一个 CPU 上运行时您的断点不会停止工作,并且您的断点不会导致其他任务出现问题)。因此(除非您完全控制计算机/CPU - 例如,您正在编写自己的内核)通常您必须依赖操作系统提供的任何 API。

如果其他东西修改了内存(例如磁盘 Controller 或网卡),它也不会工作。

关于x86 - 是否可以设置在 cpu 写入特定地址时中断的中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67127030/

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