在调试器下看Panic机制及oops信息分析

本文深入探讨Linux内核中的Panic机制和Oops信息,详细介绍了如何调试Panic,通过实例分析Oops信息的各个部分,包括栈回溯、汇编指令等,以帮助开发者理解和解决内核异常问题。同时,提到了GDK7在内核调试中的应用。
摘要由CSDN通过智能技术生成

        穷理者,因其所已知而及其所未知,因其所已达而及其所未达。人之良知,本所固有。然不能穷理者,只是足于已知已达,而不能穷其未知未达,故见得一截,又不曾见得一截,此其所以于理未精也。然仍须功夫日日增加。今日既格得一物,明日又格得一物,工夫更不住地做。如左脚进得一步,右脚又进一步;右脚进得一步,左脚又进,接续不已,自然贯通。

        借钟馗与GDK7之合力捉”鬼“,保佑代码平安顺利、风调雨顺,再无”鬼怪出现“。

oops

        当你见到oops这个单词时,第一时间想到的或许就是“哎呦*****“;同样的当你在Linux内核中碰到oops时,你也会第一时间说出“哎呦*****”,因为此时你很清楚的明白Linux内核陷入到了一场不算小的意外当中。

        Linux内核发生异常后会输出的oops信息(异常相关的信息),oops信息可以辅助我们进行调试,从而找出导致Linux内核出现异常的问题所在。

        oops信息内没有源代码信息,因为oops信息的产生不依赖dwarf符号,所以不能产生源代码信息

        oops-tracing.txt:介绍oops信息的格式;oops-tracing.txt可以在内核源代码文件夹中的Documentation文件夹内找到,如图下图所示。

Panic机制与oops的关系

        Linux内核碰到某些不严重的oops后,内核仍然可以正常运行,但是如果Linux内核碰到一些比较严重的oops后,内核将无法继续运行,同时Linux内核会进入Panic机制,而Panic机制会使系统重启。

        Panic机制的关系与oops的关系如下图所示。

调试Panic

观察1号CPU的状况

        将附件中的llaolao.zip复制到GDK7当中,并解压文件(具体位置无要求);进入解压得到的llaolao文件夹(cd ......),然后编译模块(make)。

//llaolao.zip:从文章https://bbs.pediy.com/thread-268593.htm的附件中下载llaolao.zip。

//llaolao:模拟内核态栈溢出,做无限递归。

        将GDK7中的llaolao.ko复制到调试主机(与vmlinux处于同一文件夹下)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值