当系统出现错误时,内核有两个基本的错误处理机制:oops和panic。
1.oops
(1)oops消息包含系统错误的详细信息
通常oops信息中包含当前进程的栈回溯和CPU寄存器的内容。ksymoops工具可以将机器指令转换为代码并将堆栈值映射到内核符号。
(2)使用ksymoops转换oops信息
ksymoops工具可以翻译oops信息,从而分析发生错误的指令,并显示一个跟踪部分表明代码如何被调用。它是根据内核映像的System.map来转换的,因此,必须提供正在运行的内核映像的System.map文件。
(3)内核kallsyms选项支持
通过定义CONFIG_KALLSYMS配置选项启动。该选项可以载入内核映像对应内存地址的符号的名称 ,内核可以直接跟踪回溯函数名称,而且不再打印难懂的机器码了。这样就不要System.map和ksymoops工具了。因为符号表要编译到内核映像中,所以内核映像会变大,并且符号表永久驻留在内存中。
2.panics
本文介绍了Linux内核中两种主要的错误处理机制:oops和panic。oops提供了详细的系统错误信息,包括栈回溯和寄存器状态。通过ksymoops工具可以解析oops信息并映射到内核符号。此外,通过内核kallsyms选项可以直接跟踪函数名。
4531

被折叠的 条评论
为什么被折叠?



