有没有人成功地用 Linux 内核 2.6 映射 /proc/pid/mem 文件?我收到 ENODEV(没有此类设备)错误。我的电话看起来像这样:
char * map = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_SHARED, mem_fd, offset);
我通过在调试时查看 /proc/pid/maps 文件来验证,当执行到达此调用时,偏移量的值是堆栈顶部减去 PAGE_SIZE 的值。我还用 ptrace 验证了 mmap 将 errno 设置为 ENODEV。