欢迎来到天天文库
浏览记录
ID:29661735
大小:60.00 KB
页数:11页
时间:2018-12-21
《从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等信息,如
此文档下载收益归作者所有