我只是想知道如何创建数据断点(又名观察点)?
我知道在x86上使用一些特殊的INT3指令会产生常见的断点。
我想你可以通过定期扫描内存来创建软件观察点。
但是从使用硬件断点编写自己的调试器的角度来看,我在Windows Reference中找不到任何关于此的内容(仅限WinDbg上的两个主题1 2)。我还没看过Linux。
有什么想法吗?
由于
答案 0 :(得分:2)
在x86处理器上,使用处理器上的debug registers设置数据断点。调试寄存器DR0-DR3存储要监视的地址。这就是Visual Studio限制为四个数据断点的原因。