Android平台使用kgdb在线调试内核

adtxl
2023-06-12 / 0 评论 / 578 阅读 / 正在检测是否收录...

1. 简介

本文介绍的Kgdb调试方法是一种源码级的Linux内核调试器。使用Kgdb调试内核时,需要结合gdb一起使用,使用他们可以对内核进行单步调试,设置断点,观察变量、寄存器的值等。

本文仅简单介绍使用串口的Kgbd的流程(kgdboc方式),除此之外还网卡方式即kdgboe方式,不做介绍。

2. 步骤

2.1 cmdline 传参

修改uboot中的bootargs,增加如下

console=ttyS0,115200 kgdboc=ttyS0,115200"

2.2 kernel kgdboc config打开

CONFIG_KGDB=y
CONFIG_KGDB_KDB=y

2.3 关闭wdt

如果板子有打开wdt,需要关闭wdt

3. kgdboc host端调试

安装agent-proxy 虚拟串口,能够同时吐出log

$ git clone http://git.kernel.org/pub/scm/utils/kernel/kgdb/agent-proxy.git $ cd path_to_agent-proxy_Dir $ make

绑定串口,启动aget-proxy

$ sudo ./agent-proxy 2223^2222 localhost /dev/ttyUSB0,115200 &

连接到板子

$ telnet localhost 2223 

配置KGDBoC

# echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc

进入kdb 模式

# echo g > /proc/sysrq-trigger

进入kgdb模式

kdb> kgdb

host端另开一个窗口,进行如下操作:

$ /opt/gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux/bin/aarch64-linux-gnu-gdb  vmlinux

进入gdb

(gdb) target remote localhost:2222

即可进入kgdb调试了

reference link

https://docs.windriver.com/bundle/Wind_River_Linux_Tutorial_Kernel_Debugging_with_GDB_and_KGDB_LTS_1/page/hvd1552585247474.html

https://blog.csdn.net/tinylab/article/details/45330771

0

评论 (0)

取消