kdb使用1
2017年12月22日
⁄ 综合
⁄ 共 1170字 ⁄ 字号
小 中 大
- 简介
- Built-in Kernel Debugger for Linux
- http://oss.sgi.com/projects/kdb/
- Linux内核本身不带debug工具,KDB通过给标准内核打patch来实现调试,patch包括一个通用文件和一个与体系结构相关的文件,目前支持的体系结构是x86(包括i386和x86_64)和ia64
- KDB的一个特色是更新特别快,比如当前最新的Linux版本是linux-2.6.31-rc2,KDB也立刻对此版本进行了patch更新
- 下载及安装
- ftp://oss.sgi.com/projects/kdb/download/
- 下载说明
- kdb-v4.4-2.6.31-rc2-common-2.bz2
- kdb-v4.4-2.6.31-rc2-ia64-2.bz2
- kdb-v4.4-2.6.31-rc2-x86-2.bz2
- KDB提供了以上三种patch文件,含义如下
- v4.4是KDB的版本号
- 2.6.31-rc2是Linux内核的版本号
- common是通用patch,必须下载
- ia64和x86根据自己的体系结构,选择一种下载
- 最后的-2表示有多个同样的patch,选择数目最大的下载
- 安装
- 实验环境
- Linux-2.6.25.tar.bz2
- kdb-v4.4-2.6.25-common-1.bz2
- kdb-v4.4-2.6.25-x86-2.bz2
- 安装过程
- tar -jxf Linux-2.6.25.tar.bz2
- bunzip2 kdb-v4.4-2.6.25-common-1.bz2
- bunzip2 kdb-v4.4-2.6.25-x86-2.bz2
- cd Linux-2.6.25
- patch -p1 < ../kdb-v4.4-2.6.25-common-1
- patch -p1 < ../kdb-v4.4-2.6.25-x86-2
- make menuconfig
- enable CONFIG_FRAME_POINTER
- make;make modules;make modules_install;make install
- reboot
- 控制KDB
- 通过grub
- kdb=on 开启kdb
- kdb=off 关闭kdb
- kdb=early 刚进入系统时就暂停并进入kdb
- kdb=on-nokey 任何键盘按键都不能触发kdb
- 通过proc
- echo '0' > /proc/sys/kernel/kdb 关闭kdb
- echo '1' > /proc/sys/kernel/kdb 开启kdb
- echo '2' > /proc/sys/kernel/kdb 任何键盘按键都不能触发kdb
- 进入kdb环境的方式
- 在linux运行过程中按下“Pause Break”键
- 系统panic时自动进入
- 在内核代码中调用KDB_ENTER()函数
- KDB命令解析