没有合适的资源?快使用搜索试试~ 我知道了~
Linux系统的内核调试器--kdb使用白皮书
4星 · 超过85%的资源 需积分: 42 22 下载量 45 浏览量
2010-04-10
10:25:40
上传
评论
收藏 43KB DOC 举报
温馨提示
试读
4页
kdb是一个Linux系统的内核调试器,它是由SGI公司开发的遵循GPL许可证的开放源码调试工具。kdb嵌入在Linux内核中,为内核程序员提供调试手段。它适合于调试内核空间的程序代码,譬如进行设备驱动程序调试,内核模块的调试等。目前kdb支持包括x86(IA32)、IA64和MIPS在内的体系结构
资源推荐
资源详情
资源评论
kdb 是一个 Linux 系统的内核调试器,它是由
SGI 公司开发的遵循 GPL 许可证的开放源码调试工具。
kdb 嵌入在 Linux 内核中,为内核程序员提供调试手
段。它适合于调试内核空间的程序代码,譬如进行设
备驱动程序调试,内核模块的调试等。目前 kdb 支持
包括 x86(IA32)、IA64 和 MIPS 在内的体系结构。
安装 kdb
官方发布的 Linux 内核并不包含 kdb。kdb 是一个
内核源程序的补充。kdb 通过修改内核源程序将调试
器的源代码嵌入到内核中从而提供方便的调试手段。
因此要使用 kdb 进行调试,需要重新编译内核。编译
后的内核中包含 kdb 的调试器代码。安装 kdb 的步骤
如下。
1.获得 kdb 源代码
kdb 的源代码是由 SGI 提供的,网上也有许多站
点提供 kdb 源代码包。在下载源代码包之前,需要知
道所使用的 Linux 内核的版本。这里假定我们使用的
是 2.4.7 的 内 核 。 在 如 下 地 址 http://oss.sgi.com/
projects/kdb 可以找到关于 kdb 简短介绍。SGI 提供 ftp
下 载 , 地 址 为 : ftp://oss.sgi.com/www/projects/kdb/
download/ix86 ,在此目录下,找到相应版本的的 kdb
源码包。源码包有两种格式,一种是.gz 格式压缩,一
种是.bz2 格式压缩,文件名后缀分别为.gz 和.bz2,用
户可以根据自己的情况选择相应格式的文件下载。注
意:kdb 仅仅提供对 Linux 官方发布的内核版本的支
持,如果使用发行商修改的内核版本,譬如 Redhat
7.2 的内核版本为 2.4.7-10,这是经过 Red Hat 修改的
内核版本,kdb 没有相应的版本,如果选择为 2.4.7 而
写的 kdb 版本,在对内核重编译时将会失败。因此,
如果要使用 kdb,必须使用官方发布的内核版本。目
前 kdb 提供从 2.2.3 到 2.4.19 之间的所有内核版本的相
应源代码包。
2.安装 kdb 源代码
下载 kdb 源码包后,将源码包解压缩,拷贝到内
核源代码目录下,然后执行如下命令:
#cd /usr/src/Linux-2.4.7
#patch p1 < kdb-v1.8-2.4.7
注意:如果没有安装内核源代码,需要先安装内
核源代码。
3.配置内核
执行上述步骤之后,运行内核配置程序: #make
menuconfig。进入配置菜单,进入 Kernel Hacking,这
时可以看到屏幕菜单中多了几项,选择 Magic SysRq
Key 和 Built-in Kernel Debugger Support 。第 三项 kdb
off by default 意味着是否缺省启动 kdb,如果选择它,
那么用户需要在使用 kdb 之前显式地激活它。如果需
要,选择 Compile the kernel with frame pointer 。选择
最后一项,表示在编译时使帧指针寄存器不作为通用
寄存器使用,而是专用于帧指针。配置完成后,保存
配置文件,退出配置程序。
4.编译内核
依照以下步骤重新编译内核:
#make clean
#make dep
#make bzImage
5.安装新内核
将新内核拷贝到 boot 目录下:
#cp /usr/src/Linux-2.4.7/arch/i386/boot/bzImage
/boot/kdbkernel
修改 lilo.conf,加入如下几行:
image=/boot/kdbkernel
label = kdbkernel
read-only
root = /dev/hda1
运行 lilo,使的 lilo 可以引导新内核。至此, kdb
安装就完成了。
安装新内核后,使用新内核重新启动机器,现在,
内核已经有 kdb 支持了。那么如何进入调试环境呢?
如果在配置内核时,没有选择 kdb-off by default,那么
在内核启动后,按下“pause”键即可进入 kdb 调试环境。
如果在配置内核时选择了 kdb-off by default,那么有两
种办法:一种是在启动时加入“kdb=on”,另一种方式
是在 proc 文件系统加载后,输入如下命令:
#echo 1”>/proc/sys/kernel/kdb。
然 后 就 可 以 按 “ pause” 键 进 入 调 试 环 境 了 。 按
“pause”键后,出现提示符 kdb>,同时键盘上 Caps 和
Scroll 两指示灯不停闪烁,提示现在处于 kdb 调试环
境中。
kdb 提供丰富的命令实现运行控制、内存操纵、
寄存器操纵、断点设置、堆栈跟踪等许多功能,总共
有 33 条命令,下面分别进行介绍。
bl:设置或者显示断点
格式:bl [<vaddr>]
该命令的操作与 bp 命令相同。
bpa:设置或者显示全局断点
格式:bpa [<vaddr>]
该命令设置一个全局断点,或者显示所有全局断
点,用法同上。
资源评论
- l_l_1_l_l2013-11-23资料内容太简单,不太值得下载
- hellosopc2013-05-17资料不错 值得下载
wonston
- 粉丝: 1
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 简单的SAR成像matlab代码
- cutcamera1699880194026.png
- 1999-2022年各省城镇居民人均消费支出数据(无缺失).xls
- 药店销售管理系统ssm(药品销售)【说明】资源来源网络以及部分开源社区、仅供参考与学习、项目不可商用、一切后果由使用者承担、若
- DHT11 (2)(2).apk
- 基于JSP毕业设计-学生管理系统-毕业设计.zip
- HTML+CSS+JS精品网页模板H111.rar
- 人工智能:python+OpenCV实现视频跟踪流水线缺陷检测识别
- 2005-2022年各省居民人均消费支出数据(无缺失).xlsx
- HTML+CSS+JS精品网页模板H110.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功