KGDB移植开发

本文详细介绍KGDB的获取方式、代码结构及如何为Linux内核版本2.6.21搭建调试环境。KGDB是一种源代码级内核调试器,能够通过串口或网口与GDB配合实现内核异常管理和调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 KGDB 概述

       KGDB Kernel GNU Debugger )是一种源代码级 Linux 内核调试器,它以桩函数的方式存在于内核的各个异常处理函数入口,接管内核所有的异常处理。它构建了一种对内核异常的管理机制,例如对断点异常的管理,对单步异常的管理等,通过对这些异常的管理来达到调试内核的目的。 KGDB 与运行在主机端的调试器 GDB GNU Debugger )配合使用,为调试 Linux 内核提供了一种交叉调试机制。 GDB KGDB 通过串口或网口进行信息交互,用户可以动态地查看和修改系统的各种变量,或者在内核中进行断点设置、单步执行、查看寄存器和堆栈等操作,与调试普通的应用程序非常相似。

本文就 KGDB 内核版本的制作、配置、编译和环境搭建进行详细的描述,能对用户自行搭建 KGDB 环境并调试起到指导作用。

1.1 KGDB 的获取方式

       Linux 的发布网站上可以获取到 2.6.15 2.6.20 KGDB 补丁。 2.6.21 的发布移到了开源网站 sourceforge 上。由于 KGDB 补丁并不是对所有内核版本都支持,在选择补丁版本时应选择与内核版本最接近的。目前 M300 项目基于 Linux 2.6.21 开发 ,而 KGDB 补丁恰好没有该版本,所以选择 2.6.18(arm, ppc, mips) 的补丁作为移植对象。由于内核与补丁的版本号不相同,只能靠手工合代码的方式将补丁中的代码移植出来,而不能使用 patch 命令。因此选择2.6.18 补丁作为移植对象。

网址:

http://www.eu.kernel.org/pub/linux/kernel/people/agk/patches/2.6/

http://www.eu.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/

1.2 KGDB 的代码结构

 

1.2.1 公共代码

       公共代码即对与处理器架构无关的代码进行修改,来使 KGDB 获得对内核的统一的处理。这其中包括:

Ø          网卡驱动和串口驱动部分:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值