Linux调试之(二)gdb+vmlinux

本文介绍了如何使用gdb和vmlinux进行Linux内核调试,针对RK3399平台,详细阐述了定位arm-eabi-gdb、加载内核符号表的步骤,以及如何通过gdb调试命令来定位和解决内核崩溃问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux调试之(二)gdb+vmlinux

运行linux内核,难免会遇到oops崩溃问题,如类似空指针crash,系统crash时会打印一些当时的栈信息,我们可以通过这些信息结合vmlinux来调试具体在哪个函数上出现了问题。gdb可以运行代码进行调试,可以看到更多的panic附近的信息,但对于偶发的panic就不起作用了


本平台为RK3399:

【1】定位arm-eabi-gdb 和 vmlinux

  find ./ -type f -name '*' | xargs grep  'arm-eabi-gdb'
  find ./ -type f -name '*' | xargs grep  'vmlinux'

【2】gdb加载内核符号表

1.查看内核符号表
Vmlinux是一个elf内核符号表,编译进内核的函数列表之类的可以从里面提取出来
 readelf  -a vmlinux

访问elf文件所在目录,执行“readelf -a 文件名”即可查看elf文件的内容。
-a选项表示显示所有信息。

2.执行arm-eabi-gdb vmlinux

记得需在内核的.config里面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值