KDB 内核调试
调试内核问题时,能够跟踪内核执行情况并查看其内存和数据结构是非常有
用的。Linux 中的内置内核调试器 KDB 提供了这种功能。在本文中您将了解如何
使用 KDB 所提供的功能,以及如何在 Linux 机器上安装和设置 KDB。您还将熟悉
KDB 中可以使用的命令以及设置和显示选项。
Linux 内核调试器(KDB)允许您调试 Linux 内核。这个恰如其名的工具实质
上是内核代码的补丁,它允许高手访问内核内存和数据结构。KDB 的主要优点之
一就是它不需要用另一台机器进行调试:您可以调试正在运行的内核。
设置一台用于 KDB 的机器需要花费一些工作,因为需要给内核打补丁并进行
重新编译。KDB 的用户应当熟悉 Linux 内核的编译(在一定程度上还要熟悉内核
内部机理)。
在本文中,我们将从有关下载 KDB 补丁、打补丁、(重新)编译内核以及启
动 KDB 方面的信息着手。然后我们将了解 KDB 命令并研究一些较常用的命令。最
后,我们将研究一下有关设置和显示选项方面的一些详细信息。
一、入门
KDB 项目是由 Silicon Graphics 维护的,您需要从它的 FTP 站点下载与内
核版本有关的补丁。(在编写本文时)可用的最新 KDB 版本是 4.2。您将需要下
载并应用两个补丁。
一个是“公共的”补丁,包含了对通用内核代码的更改,另一个是特定于体
系结构的补丁。补丁可以 bz2 文件获取。例如,在运行 2.4.20 内核的 x86 机器
上,您会需要 kdb-v4.2-2.4.20-common-1.bz2 和 kdb-v4.2-2.4.20-i386-1.bz2。
这里所提供的所有示例都是针对 i386 体系结构和 2.4.20 内核的。您将需要
根据您的机器和内核版本进行适当的更改。您还需要拥有 root 许可权以执行这
些操作。
将文件复制到/usr/src/linux 目录中并用 bzip2 解压缩补丁文件:
#bzip2 -d kdb-v4.2-2.4.20-common-1.bz2
#bzip2 -d kdb-v4.2-2.4.20-i386-1.bz2
您将获得 kdb-v4.2-2.4.20-common-1 和 kdb-v4.2-2.4-i386-1 文件。现在,应
用这些补丁:
#patch -p1 <kdb-v4.2-2.4.20-common-1
#patch -p1 <kdb-v4.2-2.4.20-i386-1
这些补丁应该干净利落地加以应用。查找任何以.rej 结尾的文件。这个扩展
名表明这些是失败的补丁。如果内核树没问题,那么补丁的应用就不会有任何问
题。
接下来,需要构建内核以支持 KDB。第一步是设置 CONFIG_KDB 选项。使用您
喜欢的配置机制(xconfig 和 menuconfig 等)来完成这一步。转到结尾处的
“Kernel hacking”部分并选择“Built-in Kernel Debugger support”选项。
- 1
- 2
前往页