硬件观察点 - 它们如何工作?

时间:2011-10-18 10:25:28

标签: debugging gdb hardware watchpoint

GDB观察点如何运作?是否可以实现类似的功能以利用定义位置的字节级访问?

2 个答案:

答案 0 :(得分:9)

在x86上有CPU调试寄存器D0-D3,用于跟踪存储器地址。

This解释了如何在Linux中实现硬件断点,并详细介绍了使用的处理器特定功能。

硬件断点上的另一个article

答案 1 :(得分:3)

我相信gdb使用MMU,以便包含监视地址范围的内存页面被标记为受保护 - 然后当写入受保护页面时发生异常gdb处理异常,检查写入的地址是否对应到特定的观察点,然后相应地恢复或下降到gdb命令提示符。

您可以使用mprotect为您自己的调试代码或测试工具实现类似的功能,但如果您想要执行更复杂的操作而不是在写错时失败,则需要实现异常处理程序。 / p>