- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机软件及应用]内核调试器kdb代码分析
这是一个很冷门的话题,它受关注的程度永远也比不上陈冠希老师的摄影作品.不过人在江湖身不由己,因为工作原因我不得不接触它,不得不
了解一点kdb 的代码.
Kdb,也叫kernel debugger.是Linux 系统的内核调试器,它是一个开源工具,乃是SGI 公司开发的.kdb 适用于调试内核空间的程序代码,譬
如进行设备驱动程序调试,内核模块的调试.Official 的Linux kernel 并不包含kdb,所以我们必须从sgi 的网站上去下载kdb.关于如何安装如何
使用 kdb,并非本系列文章的重点.实际上,关于 kdb 的入门,关于 kdb 的应用,许多年前,当我还在复旦念书的时候,当我才刚学会几个简单的Unix
命令的时候,我就注意到网络上有人发表过这类文章了,所以介绍 kdb,推广 kdb,并不是我写此文的目的.我所写的是针对 kdb 本身的分析,针对的
是kdb 的源代码,或者说kdb 的实现.
Linux 内核每隔一段时间就会发布一个最新的版本,而 kdb 则会相应的发布与之匹配的补丁.比如你Linux 发布了2.6.10 的kernel,那么我
sgi 这边就发布针对2.6.10 的kernel 的补丁.你发布了2.6.20 的kernel,我就发布针对你2.6.20 的补丁.比如我之前为了看2.6.22.1 的kernel,
我就下载了针对2.6.22.1 的补丁,或者叫做patch.一共有三个patch:
localhost:/usr/src # ls kdb-v4.4-2.6.22-*
kdb-v4.4-2.6.22-common-1 kdb-v4.4-2.6.22-i386-1 kdb-v4.4-2.6.22-x86_64-1
这三个patch 有多长呢:
localhost:/usr/src # wc -l kdb-v4.4-2.6.22-*
17943 kdb-v4.4-2.6.22-common-1
14753 kdb-v4.4-2.6.22-i386-1
14249 kdb-v4.4-2.6.22-x86_64-1
46945 total
我的神,46945 行.
第一个patch 是最基本的patch.
第二个patch 是针对i386 的.
第三个patch 是针对x86_64 的.
如果你只对i386 感兴趣,那么只关注前两个patch 就可以了.
首先我们就来看一下这个common 的patch.这个patch 开门见山的介绍了它对内核中哪些文件进行了修改,或者增加了哪些文件.
Documentation/kdb/kdb.mm | 492 +++++
Documentation/kdb/kdb_bp.man | 197 ++
Documentation/kdb/kdb_bt.man | 228 ++
Documentation/kdb/kdb_env.man | 46
Documentation/kdb/kdb_ll.man | 134 +
Documentation/kdb/kdb_md.man | 136 +
Documentation/kdb/kdb_ps.man | 96
Documentation/kdb/kdb_rd.man | 170 +
Documentation/kdb/kdb_sr.man | 68
Documentation/kdb/kdb_ss.man | 109 +
Documentation/kdb/slides | 1382 ++++++++++++++
Makefile | 1
drivers/char/keyboard.c | 10
drivers/hid/usbhid/hid-core.c | 20
drivers/hid/usbhid/usbkbd.c | 15
drivers/serial/8250.c | 53
drivers/serial/8250_early.c | 34
drivers/serial/sn_con
文档评论(0)