- 准备工作:
- 目标机内核配置。确保编译目标机内核时开启了以下配置(通常在
make menuconfig中):- CONFIG_DEBUG_INFO=y # 保留调试符号
CONFIG_KGDB=y # 启用 KGDB
CONFIG_KGDB_SERIAL_CONSOLE=y # 启用串口控制
CONFIG_FRAME_POINTER=y # 提供准确的调用栈(可选,但推荐)
- CONFIG_DEBUG_INFO=y # 保留调试符号
- 在目标机上激活 KGDB:
- 在系统运行中动态触发(适合调试运行中的驱动):
- echo ttymxc3,115200 > /sys/module/kgdboc/parameters/kgdboc
- echo g > /proc/sysrq-trigger
此时目标机会完全失去响应(屏幕卡住,键盘无响应),这说明内核已经成功挂起,正在串口另一端等待调试指令。
- 在系统运行中动态触发(适合调试运行中的驱动):
- 在开发机上建立 GDB 连接:
- cd ~/project/linux/
- arm-linux-gnueabihf-gdb vmlinux
- (gdb) target remote /dev/ttyUSB0
嵌入式linux学习记录十八,KGDB使用例
bush42026-07-19 8:40
相关推荐
旖旎夜光17 小时前
C++(类与对象)(下)拾光Ծ18 小时前
【Linux网络】深入理解网络层:从IP协议格式,子网划分到NAT与路由机制math_hongfan18 小时前
鸿蒙AI应用性能高级评测:推理延迟/内存占用/功耗/准确率四维指标评测体系与极致调优方案zho_uzhou18 小时前
ubuntu服务端运行vue网页步骤ltl1 天前
纠删码原理与存储效率ltl1 天前
MinIO 原理和架构:机制、AGPL 与上游 archived 风险林浩杨_1 天前
linux搜索命令(grep+sed)W.W.H.1 天前
将驱动编译成模块并安装到rootfsltl1 天前
io_uring 在生产环境翻车实录:内核 bug、资源泄漏和你不知道的限制ltl1 天前
内存分配器擂台:jemalloc vs tcmalloc vs mimalloc vs glibc