首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

kernel中遍历全部进程

2013-10-19 
kernel中遍历所有进程看下具体的宏定义实现:#define for_each_process(p) \for (p &init_task (p ne

kernel中遍历所有进程

看下具体的宏定义实现:

#define for_each_process(p) \for (p = &init_task ; (p = next_task(p)) != &init_task ; )


在看下具体例子,打印所有进程的函数调用栈:

static void wdt_report_info (void){    struct task_struct *task ;    task = &init_task ;        printk ("Qwdt: -- watchdog time out\n") ;    for_each_process (task)    {        if (task->state == 0)        {            printk ("PID: %d, name: %s\n backtrace:\n", task->pid, task->comm) ;            show_stack (task, NULL) ;            printk ("\n") ;        }    }    printk ("backtrace of current task:\n") ;    show_stack (NULL, NULL) ; }


 

热点排行