首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何快速定位 Linux Panic 出错的代码行

    问题描述 内核调试中最常见的一个问题是:内核Panic后,如何快速定位到出错的代码行? 就是这样一个常见的问题,面试过的大部分同学都未能很好地回答,这里希望能够做很彻底地解答。...问题分析 内核Panic时,一般会打印回调,并打印出当前出错的地址: kernel/panic.c:panic(): #ifdef CONFIG_DEBUG_BUGVERBOSE /* * Avoid...相应的工具有addr2line, gdb, objdump等,这几个工具在How to read a Linux kernel panic?都有介绍,我们将针对上面的实例做更具体的分析。...addr2line 如果出错的内核跟当前需要调试的内核一致,而且编译器等都一致,那么可以通过addr2line直接获取到出错的代码行,假设出错地址为0019594c: $ addr2line -e vmlinux_with_debug_info...总地来看,gdb还是来得简单方便,无论是情况一还是情况二都适用,而且很快捷地就显示出了出错的代码位置,并且能够显示代码的内容。 对于用户态来说,分析的方式类似。

    1.9K40
    领券