博文

目前显示的是标签为“oops”的博文

制造、调试OOPS

1.前言     在Linux系统里出现kernel panic时会打印OOPS信息,把当前的寄存器状态、堆栈信息、完整的Call trace都打印出来,以便我们更好的定位错误。下面我们将会自已制造一个OOPS,并采用多种方式来定位调试OOPS,以便大家更好的了解内核,深入探索内核,利用内核异常信息来定位处理问题。 2.制造OOPS     这次我们以模块的形式来制造一个OOPS,文件名为oops_example.c,内容如下:     #include <linux/kernel.h>     #include <linux/module.h>     static __init int oops_example_init(void)     {             int *p = 0;             printk("Hi OOPS!\n");             *p = 12;             return 0;     }     static __exit void oops_example_exit(void)     {             printk("Bye OOPS!\n");     }   ...