Oops信息及栈回溯Oops信息及栈回溯.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oops信息及栈回溯Oops信息及栈回溯

Oops 信息及栈回溯 (2011-10-25 10:16) 标签: 信息 分类: linux 1. Oops 信息来源及格式 Oops 这个单词含义为“惊讶”,当内核出错时(比如访问非法地址)打印出来的信息被称为Oops 信息。 Oops 信息包含以下几部分内容: (1)一段文本描述信息。 比如类似“Unable to handle kernel NULL pointer dereference at virtual address的信息,他说明 了发生的是哪类错误。 (2 )Oops 信息的序号。 比如是第几次等。这些信息与下面类似,括号内的数据表示序号。 1. Internal error: Oops: 806 [#1] (3 )内核中加载的模块名称,也可能没有,以下面字样开头。 1. Modules linked in: (4 )发生错误的CPU 的序号,对于单处理器系统,序号为0,如: 1. CPU: 0 Not tainted (2.6.22.6 #36) (5 )发生错误时CPU 的各个寄存器值。 (6 )当前进程的名字及进程ID,比如: 1. Process swapper (pid : 1, stack limit = 0xc0480258) 这并不是说发生错误的是这个进程,而是表示发生错误时,当前进程是它。错误可能发生在内核代码、 驱动程序,也可能就是这个进程的错误。 (7 )栈信息。 (8 )栈回溯信息,可以从中看出函数调用关系,形式如下: 1. Backtrace: 2. [c001a6f4] (s3c2410fb_probe+0x0/0x560) from [c01bf4e8] (platform_drv_probe+0x20/0x24) 3. (9 )出错指令附近的指令机器码,比如(出错指令在小括号内): 1. Code: e24cb004 e24dd010 e59f34e0 e3a07000 (e5873000) 2. 配置内核使Oops 信息的栈回溯信息更直观 Linux 2.26.32 自身具备的调试功能,可以使打印出的Oops 信息更直观。通过Oops 信息中PC 寄存器 的值可以知道出错指令的地址,通过栈回溯信息可以知道出错时的函数调用关系,根据这两点可以很 快定位错误。 要让内核出错时能够打印栈回溯信息,编译内核时要增加“-fno-omit-frame-pointer选项,这可以通过 配置CONFIG_FRAME_POINTER 来实现。查看内核目录下的配置文件.config,确保 CONFIG_FRAME_POINTER 已经被定义,如果没有,执行“make menuconfig”命令重新配置内核。 CONFIG_FRAME_POINTER 有可能被其他配置项目自动选上。 3 使用Oops 信息调试内核的实例 (1)获得Oops 信息 本小节故意修改 LCD 驱动程序 drivers/video/s3c2410fb.c,加入错误代码:在 s3c2410fb_ probe 函数的开头增加下面两条代码: 1. int *ptest = NULL; 2. *ptest = 0x1234; 重新编译内核,启动后会出错并打印出如下 Oops 信息: 1. Unable to handle kernel NULL pointer dereference at virtual address 2. pgd = c0004000 3. *pgd 4. Internal error: Oops: 805 [#1] 5. last sysfs file: 6. Modules linked in: 7. CPU: 0 Not tainted (2.6.32 #24) 8. PC is at s3c2410fb_probe+0xc/0x18 9. LR is at platform_drv_probe+0x18/0x1c 10. pc : [c0018f78] lr : [c01d3f88] psr : a0000013 11. sp : c3823f30 ip : c3842e7c f

文档评论(0)

vshoulrengb3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档