嵌入式linux学习记录十八,KGDB使用例

  1. 准备工作:
  2. 目标机内核配置。确保编译目标机内核时开启了以下配置(通常在 make menuconfig 中):
    1. CONFIG_DEBUG_INFO=y # 保留调试符号
      CONFIG_KGDB=y # 启用 KGDB
      CONFIG_KGDB_SERIAL_CONSOLE=y # 启用串口控制
      CONFIG_FRAME_POINTER=y # 提供准确的调用栈(可选,但推荐)
  3. 在目标机上激活 KGDB:
    1. 在系统运行中动态触发(适合调试运行中的驱动):
      1. echo ttymxc3,115200 > /sys/module/kgdboc/parameters/kgdboc
      2. echo g > /proc/sysrq-trigger
        此时目标机会完全失去响应(屏幕卡住,键盘无响应),这说明内核已经成功挂起,正在串口另一端等待调试指令。
  4. 在开发机上建立 GDB 连接:
    1. cd ~/project/linux/
    2. arm-linux-gnueabihf-gdb vmlinux
    3. (gdb) target remote /dev/ttyUSB0
相关推荐
吃好睡好便好3 小时前
判断函数的使用
学习·算法·matlab·生活·判断函数
chen<>3 小时前
malloc 和 free 背后发生了什么?
java·linux·服务器·操作系统
小二李3 小时前
第12章 nestjs服务端开发:RBAC权限系统设计
java·linux·前端
阳光宅男@李光熠3 小时前
【电子通识】排阻和普通电阻有什么区别?
笔记·学习
feilieren3 小时前
ubuntu 安装 docker
linux·ubuntu·docker
m4Rk_3 小时前
【论文阅读】Agent 记忆机制(54):MINJA——普通用户如何仅通过查询污染 Agent 的长期记忆
论文阅读·人工智能·学习·开源·github
Tanner_SL3 小时前
Linux笔记之BASH命令行操作
linux·bash
raindayinrain4 小时前
深入理解Linux内核--文件描述符,文件对象,索引节点,虚拟文件系统,性能优化
linux·虚拟文件系统
新时代牛马4 小时前
CFS调度源码:从 schedule() 到pick_next_entity 的vruntime 公平
linux·运维·网络
bu_shuo4 小时前
Linux中修改demo.c文件的权限
linux·c语言