标签: c++ c linux mprotect
我正在使用mprotect将一些内存页面设置为写保护。当在该存储区域中尝试任何写入时,程序获得SIGSEGV信号。从信号处理程序我知道在哪个内存地址尝试写入,但我不知道如何找出哪个指令导致写保护违规。所以在信号处理程序内部,我正在考虑读取程序计数器(PC)寄存器以获取错误指令。有一个简单的方法吗?