前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用gdb调试内核

使用gdb调试内核

作者头像
锦小年
发布2022-11-02 17:26:04
1.5K0
发布2022-11-02 17:26:04
举报
文章被收录于专栏:锦小年的博客锦小年的博客

1. 使用gdb调试内核

内核配置需要添加编译信息。

建议关闭地址随机化,否则会出现gdb中无法在断点处停下来的情况(尤其是qemu中)。可以参考:https://blog.csdn.net/gatieme/article/details/104266966

在目标板上开启gdbserver模式(虚拟soc中加上gdb调试的选项);在host上启动gdb客户端后连接虚拟soc提供的gdb服务(终端不会有输出),命令如下:

在目标板的串口则会有对应的输出信息。

2. 使用gdb扩展

内核通过python脚本定义了一组gdb命令,可方便其对内核的调试,如通过该脚本可以打印dmesg,percpu变量,通过pid打印其对应的task_struct结构体等。

内核编译时要除了4.1的配置,还需要开启CONFIG_GDB_SCRIPTS支持。

编译后在linux内核主目录(vmlinux同级目录)下会生成文件:vmlinux-gdb.py。在gdb中可以读取该文件。

使用’apropos lx’查看常用的支持的扩展指令:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 使用gdb调试内核
  • 2. 使用gdb扩展
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档