我想问一下是否有人知道如何检测分配内存地址上的写入。
起初,我使用 mprotect 和 sigaction 在进行写/读操作时强制出现分段错误。
这种方法有两个负面因素:
- 是难以通过分段错误
- mprotect 中的内存地址传递必须与页面边界对齐,即不可能使用简单的 malloc 处理此内存地址。
为了澄清问题:
我在 C 中为集群环境构建了一个应用程序。在某些时候,我分配了我在本地主机中调用缓冲区的内存并分配了一些数据。该缓冲区将被发送到远程节点并具有相同的过程。同时,该缓冲区将在远程节点中写入/读取,但我不知道何时(它将使用 DMA 写入/读取缓冲区),必须通知本地主机有关缓冲区修改。就像我上面说的,我已经使用了一些机制,但没有一个能够以某种能力处理它。现在我只是想要一些想法。
这里欢迎每一个不同的想法。
谢谢