制造、调试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"); } ...