我试图让一些内存可执行(在Mac OS 10.6上),我怀疑mprotect()是静默失败的。给定一页内存的地址,我该如何检查它实际上是否标记为可执行文件?
答案 0 :(得分:1)
使用vmmap获取如下输出:
Stack 00007fff6276e000-00007fff62f6d000 [ 8188K 8K 8K] rw-/rwx SM=PRV thread 0
Stack 00007fff62f6d000-00007fff62f6e000 [ 4K 4K 4K] rw-/rwx SM=COW thread 0
__TEXT 00007fff62f6e000-00007fff62fa3000 [ 212K 212K 0K] r-x/rwx SM=COW /usr/lib/dyld
__DATA 00007fff62fa3000-00007fff62fa5000 [ 8K 8K 8K] rw-/rwx SM=COW /usr/lib/dyld
__DATA 00007fff62fa5000-00007fff62fdf000 [ 232K 28K 28K] rw-/rwx SM=COW /usr/lib/dyld