从oops中查找错误代码行-堆栈错误信息

从oops中查找错误代码行-堆栈错误信息

ID:29661735

大小:60.00 KB

页数:11页

时间:2018-12-21

从oops中查找错误代码行-堆栈错误信息_第1页
从oops中查找错误代码行-堆栈错误信息_第2页
从oops中查找错误代码行-堆栈错误信息_第3页
从oops中查找错误代码行-堆栈错误信息_第4页
从oops中查找错误代码行-堆栈错误信息_第5页
资源描述:

《从oops中查找错误代码行-堆栈错误信息》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、从oops信息查找出错代码行分类:LinuxReleated2011-04-1816:15725人阅读评论(0)收藏举报  (1)从oopscrash的地方开始查起,首先找到指针访问错误的代码行a)重新编译内核时,选上kernelhacking--->compilethekernelwithdebuginfo                                                                  ---->kerneldebugging使得内核包含调试信息,b)然后从Oops信息中找到“PCisatfree_block+0x8c/0

2、x168”##########################################################Unabletohandlekernelpagingrequestatvirtualaddress000c0604//非法指针地址pgd=40004000[000c0604]*pgd=00000000Internalerror:Oops:817[#1]Moduleslinkedin:CPU:0   Nottainted (2.6.27.18#221)PCisatfree_block+0x78/0x168                        

3、          //当前指令地址LRisatrelease_console_sem+0x19c/0x1b8          //函数返回地址##########################################################从system_map中查到free_block地址0x40097ac0,+0x78得到0x40097B38c)在内核根目录运行arm-wrs-linux-gnueabi-armv6jel_vfp-uclibc_small-gdbvmlinux就可以得到出错行  [root@kqyang-hikvisionlinux

4、-2.6.27_svn_quyong]#arm-wrs-linux-gnueabi-armv6jel_vfp-uclibc_small-gdbvmlinuxGNUgdb(WindRiverLinuxSourceryG++4.3-85)6.8.50.20080821-cvsCopyright(C)2008FreeSoftwareFoundation,Inc.LicenseGPLv3+:GNUGPLversion3orlaterThisisfreesoftware:youarefreetochangeandre

5、distributeit.ThereisNOWARRANTY,totheextentpermittedbylaw. Type"showcopying"and"showwarranty"fordetails.ThisGDBwasconfiguredas"--host=i686-pc-linux-gnu--target=arm-wrs-linux-gnueabi".Forbugreportinginstructions,pleasesee:...(gdb)l*0x40097B380x40097b38isinfree_block(in

6、clude/linux/list.h:93).88      *theprev/nextentriesalready!89      */90      #include91     staticinlinevoid__list_del(structlist_head*prev,structlist_head*next)92     {93             next->prev=prev;94             prev->next=next;95     }9697     /**(gdb)原文地址:linux内核的oops信

7、息作者:XINU   Oops可看成是内核级(特权级)的SegmentationFault。一般应用程序(用户级)如进行了内存的非法访问(地址不合法、无权限访问、……)或执行了非法指令,则会得到Segfault信号,一般对应的行为是coredump,应用程序也可以自行获取Segfault信号进行处理,而内核出错则是打印出Oops信息。   内核打印Oops信息的执行流程:  1、do_page_fault()(arch/i386/mm/fault.c),如果内核出现非法访问,则该函数会打印出EIP、PDE等信息,如

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。