实验程序
// memoryMsg.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/sched.h>
static pid_t pid;
/*向模块传递参数,文件的权限为0644*/
module_param(pid,int,0644);
int print_vma(void){
struct task_struct *task;
struct mm_struct *mm;
struct vm_area_struct *vma;
printk("\n\n\n\n\n\n\n\n\n\n");
printk("begin to print virtual address space...\n");
printk("\n");
task = pid_task(find_vpid(pid),PIDTYPE_PID);
mm = task->mm;
/*task_struct*/
printk("ececutable name:%s pid:%d\n",task->comm,task->pid);
printk("\n");
/*mm_struct*/
/*.text && .data*/
printk("start_code:0x%lx end_code:0x%lx\n",mm->start_code,mm->end_code);
printk("start_data:0x%lx end_data:0x%lx\n",mm->start_data,mm->end_data);
printk
版权声明:本文为qq_35536179原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。