by Pingbo Wen of TinyLab.org
2013/08/11
最初发表:泰晓科技 – 聚焦嵌入式 Linux,追本溯源,见微知著!
原文链接:用 kGDB 调试 Linux 内核
评论说明:为更好地聚合大家的讨论,请到上面原文的评论区回复。
简介
这个文档记录了用kGDB调试Linux内核的全过程,都是在前人工作基础上的一些总结。以下操作都是基于特定板子来进行,但是大部分都能应用于其他平台。
要使用KGDB来调试内核,首先需要修改config配置文件,打开相应的配置,配置内核启动参数,甚至修改串口驱动添加poll支持,然后才能通过串口远程调试内核。
配置内核
基本配置
在内核配置文件:.config中,需要打开如下选项
CONFIG_KGDB | 加入KGDB支持 |
CONFIG_KGDB_SERIAL_CONSOLE | 使KGDB通过串口与主机通信(打开这个选项,默认会打开CONFIG_CONSOLE_POLL和CONFIG_MAGIC_SYSRQ) |
CONFIG_KGDB_KDB | 加入KDB支持 |
CONFIG_DEBUG_KERNEL | 包含驱动调试信息 |
CONFIG_DEBUG_INFO | 使内核包含基本调试信息 |
CONFIG_DEBUG_RODATA=n | 关闭这个,能在只读区域设置断点 |
可选选项
CONFIG_PANIC_TIMEO