KGDB移植开发

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 获得对内核的统一的处理。这其中包括:

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

你可能感兴趣的:(linux,patch)