支持的目标平台
KGDB 需要一个专用串口,且该串口不能与内核日志控制台共用。以下目标平台已在 Qualcomm Linux 上完成 KGDB 验证: 表:各目标平台的 KGDB 支持情况在所有受支持的目标平台上,开发套件都通过调试接头将
ttyMSM0 作为 Qualcomm GENI UART 暴露出来。在开始会话之前,请先确认该端口在您的开发板上可用:所需的内核配置
启用以下 Kconfig 选项并重新构建内核:串口设置
KGDB 使用kgdboc(KGDB over console)驱动通过串口通信。
内核命令行参数
将以下内容添加到meta-qcom/conf/machine/include/qcom-<SoC>.conf 中的
KERNEL_CMDLINE_EXTRA:
禁用看门狗
如果内核停止响应,Qualcomm SoC 看门狗会重置设备。在开始 KGDB 会话前 禁用它,以防止意外重置:进入调试模式
选择以下方法之一来暂停内核并激活 KGDB stub。方法 1:kgdbwait(启动时)
当内核命令行中包含kgdbwait 时,内核会在启动期间停止,并在串口
控制台上打印以下消息:
方法 2:Magic SysRq(运行时)
在目标设备的 shell 中:方法 3:编译时断点
在驱动源码中插入硬断点:方法 4:内核 panic(异常驱动)
当发生未处理的异常或 panic 时,内核会自动进入 KGDB 模式。要为测试 故意触发一次崩溃:从主机连接 GDB
在主机上安装gdb-multiarch:
Linux 主机
Windows 主机
在 Windows 上,请在设备管理器中将 COM 端口号设置为大于 16,并使用\\.\comN 路径语法:
GDB 调试会话
常用 GDB 命令
表:GDB 命令参考加载模块符号
要调试动态加载的内核模块,请从目标设备获取.text 段地址:

