如何检测vm_are_struct
所代表的区域被映射为ANONYMOUS?
我假设vm_flags
字段包含VM_XXX
个标志但不包含MAP_XX
个标志。除此之外,vm_page_prot
字段包含一些意想不到的内容。
答案 0 :(得分:1)
通过检查anon_vma
指针(应设置为非NULL)和vm_file
(如果映射与文件相关,则应为NULL):
if(vma->anon_vma != NULL && vma->vm_file == NULL) {
// MAP_ANON
}
但anon_vma
似乎是懒惰分配(在mmap()
被调用后不立即初始化。)