文章目录
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里面