【米尔瑞萨RZ/G2L开发板-创新应用】KGDB调试指南
本帖最后由 贫穷贵公子 于 2023-7-21 21:31 编辑KGDB调试参考手册
针对Linux kernel,采用常规的printk打印调试方法,是最为常见,而且也最为通用的。使用GDB调试工具,对kernel进行调试,官方文档如下所示。
myir-renesas-linux/Documentation/dev-tools/kgdb.rst
https://docs.kernel.org/dev-tools/gdb-kernel-debugging.html
开启内核KGDB配置
# kgdb
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_KGDB_KDB=y
CONFIG_GDB_SCRIPTS=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_DWARF4=y
CONFIG_FRAME_POINTER=y
CONFIG_PANIC_TIMEOUT=10
CONFIG_CONSOLE_POLL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_STRICT_KERNEL_RWX=n
CONFIG_KDB_KEYBOARD=y
CONFIG_KGDB_TESTS=y
CONFIG_DYNAMIC_DEBUG=y修改linux-myir_5.10.bb文件
# Kernel confguration update
SRC_URI += "file://uio.cfg \
file://kgdb.cfg \
"yocto/myir-renesas-yocto/layers/meta-myir-yg2lx/recipes-bsp/linux-kernel/linux/files/kgdb.cfg
KGDB相关联的内核配置项,保存在kgdb.cfg文件当中,然后在recipe文件当中指定。
do_compile_append() {
make scripts_gdb
}由于kernel版本是5.10.83,必须采用这种方式,编译gdb调试时,使用的script。
修改u-boot,调整内核的cmdline参数
yocto/myir-renesas-uboot/configs/myc-rzg2l_ddr1gb_defconfig
CONFIG_BOOTARGS="rw rootwait earlycon root=/dev/mmcblk0p2 nokaslr console=ttySC0,115200 kgdboc=ttySC0,115200 kgdbwait"
yocto/myir-renesas-uboot/include/configs/myc-rzg2l.h
"prodemmcbootargs=setenv bootargs rw rootwait earlycon root=/dev/mmcblk0p2 nokaslr console=ttySC0,115200 kgdboc=ttySC0,115200 kgdbwait\0" \
重新编译u-boot和kernel镜像,并烧录
查看串口日志,发现,出现下述日志,表明KGDB初步配置成功。
gdb调试配置
切换到yocto/myir-renesas-yocto/build-myir-1g/tmp/work/myir_yg2lx_1g-poky-linux/linux-myir/5.10.83+git999-r1路径下
aarch64-poky-linux-gdb linux-myir-5.10.83+git999/vmlinux -tui使用米尔提供的sdk下的aarch64-poky-linux-gdb工具
add-auto-load-safe-path linux-myir-5.10.83+git999/添加可信路径,方便后续加载gdb调试script脚本。
source linux-myir-5.10.83+git999/vmlinux-gdb.pyset detach-on-fork onset serial baud 115200target remote /dev/ttyUSB0
感谢楼主分享,期待更多精彩内容
页:
[1]