Is there some way on Linux or Unix systems to determine if a distinct physical or virtual memory address has been accessed? I know the address or list of addresses but want to know if and what application tries to read or write to it. In case I know the application how could I trace its access to certain physical or virtual memory regions? The second part seems to be possible with gdb but maybe there are alternative ways. I'm also not only considering software solutions. Memory access through DMA could also provide a solution but is more complicated to setup.