查看进程的虚拟地址空间并打印

  • Post author:
  • Post category:其他


实验程序

// 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 版权协议,转载请附上原文出处链接和本声明。