- 论坛徽章:
- 0
|
想学习一下进程线性区的一些知识,请教下如何打印输出本进程的vma,相关的pid等信息。
vma结构需要在内核态下才能看到,是不是可以通过ioctl写个驱动,用户态调用一下,在内核态下打印本进程下的所有vma。
另外是否可以通过 模块 来实现呢?
谢谢!
=====看到一个模块代码打印pid等内核结构中的信息,但下面的只是模块的。我需要的是打印我自己的正常的用户态函数,========
/*
* hello.c -- the example of printf "hello world!" in the screen of driver program
*/
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/sched.h>
MODULE_LICENSE("Dual BSD/GPL");/* declare the license of the module ,it is necessary */
static struct task_struct *pcurrent;
static int print_current_task_info();
static int __init print_init(void)
{
printk(KERN_INFO "print current task info\n");
print_current_task_info();
return 0;
}
static void __exit print_exit(void)
{
printk(KERN_INFO "Finished\n");
}
static int print_current_task_info()
{
pcurrent = get_current();
printk(KERN_INFO "Task state: %d\n",current->state);
printk(KERN_INFO "pid : %d\n",current->pid);
printk(KERN_INFO "tgid: %d\n",current->tgid);
printk(KERN_INFO "prio: %d\n",current->prio);
}
module_init(print_init);
module_exit(print_exit); |
|