2

我正在调试 MIPS 上的内存损坏问题。我想知道谁将某个值写入地址。

在 x86-64 中,我们可以使用 mprotect+sigsegv+sigtrap 来记录对指定地址的任何内存写访问。

如果我使用 mprotect,在 sigsegv 处理程序中,我必须取消保护内存,否则程序会不断触发信号处理程序。此外,在信号处理程序中,要知道将写入内存的值并不容易。

对于硬件观察点,它有类似的问题。异常将在写入内存之前而不是之后发生。

无论如何要知道将写入内存的值?而如果是期望值,我们是否可以再次保护内存并继续执行?

4

0 回答 0