Linux 系统内核的调试
日期:2007年8月8日 作者: 查看:[大字体 中字体 小字体]-
Linux 系统内核的调试
文档选项
将此页作为电子邮件发送
对此页的评价
帮助我们改进这些内容
李树雷 , 清华大学计算机系硕士研究生
陈渝 , 清华大学2005 年 12 月 18 日
本文将首先介绍 Linux 内核上的一些内核代码监视和错误跟踪技术,这些调试和跟踪方法因所要求的使用环境和使用方法而各有不同,然后重点介绍三种 Linux 内核的源代码级的调试方法。
调试是软件开发过程中一个必不可少的环节,在 Linux 内核开发的过程中也不可避免地会面对如何调试内核的问题。但是,Linux 系统的开发者出于保证内核代码正确性的考虑,不愿意在 Linux 内核源代码树中加入一个调试器。他们认为内核中的调试器会误导开发者,从而引入不良的修正[1]。所以对 Linux 内核进行调试一直是个令内核程序员感到棘手的问题,调试工作的艰苦性是内核级的开发区别于用户级开发的一个显著特点。
尽管缺乏一种内置的调试内核的有效方法,但是 Linux 系统在内核发展的过程中也逐渐形成了一些监视内核代码和错误跟踪的技术。同时,许多的补丁程序应运而生,它们为标准内核附加了内核调试的支持。尽管这些补丁有些并不被 Linux 官方组织认可,但他们确实功能完善,十分强大。调试内核问题时,利用这些工具与方法跟踪内核执行情况,并查看其内存和数据结构将是非常有用的。
本文将首先介绍 Linux 内核上的一些内核代码监视和错误跟踪技术,这些调试和跟踪方法因所要求的使用环境和使用方法而各有不同,然后重点介绍三种 Linux 内核的源代码级的调试方法。
1. Linux 系统内核级软件的调试技术
printk() 是调试内核代码时最常用的一种技术。在内核代码中的特定位置加入printk() 调试调用,可以直接把所关心的信息打打印到屏幕上,从而可以观察程序的执行路径和所关心的变量、指针等信息。 Linux 内核调试器(Linux kernel debugger,kdb)是 Linux 内核的补丁,它提供了一种在系统能运行时对内核内存和数据结构进行检查的办法。Oops、KDB在文章掌握 Linux 调试技术有详细介绍,大家可以参考。 Kprobes 提供了一个强行进入任何内核例程,并从中断处理器无干扰地收集信息的接口。使用 Kprobes 可以轻松地收集处理器寄存器和全局数据结构等调试信息,而无需对Linux内核频繁编译和启动,具体使用方法,请参考使用 Kprobes 调试内核。
以上介绍了进行Linux内核调试和跟踪时的常用技术和方法。当然,内核调试与跟踪的方法还不止以上提到的这些。这些调试技术的一个共同的特点在于,他们都不能提供源代码级的有效的内核调试手段,有些只能称之为错误跟踪技术,因此这些方法都只能提供有限的调试能力。下面将介绍三种实用的源代码级的内核调试方法。
- [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 下一页
-
- Linux 系统内核的调试 相关文章:
- ·C/C++笔试、面试题目大汇总
- ·计算机一级B考试试题分析
- ·我也发个破解(可破解正版中文旗舰版 Windows Vista Ultimate ChnSimp )试用没问题
- ·求职面试自我介绍一分钟
- ·湖南省计算机应用能力初级考核模拟试题
- ·计算机一级B考试自测题
- ·全国计算机等级考试一级内容
- ·全国计算机等级考试一级B模拟试题一
- ·教你如何调试CISCO路由器(上)
- ·教你如何调试思科路由器
- Linux 系统内核的调试 相关软件
- ·Microsoft Office 2003 测试版
- ·铁血联盟2(Jagged Alliance 2) 中文试玩版
- ·极速房车赛2代 TOCA Race Driver 2: The Ultimate Racing Simulator 试玩版
- ·报检员考试复习提纲[PDF版]
- ·雷神之锤3:团队竞技场 Quake III Team Arena 试玩版
- ·金山快译 V2007 绿色精简试用版
- ·地球 2160 Earth 2160 试玩版
- ·南北战争(Civil War Bull Run) 试玩版
- ·无人永生2 完整版试玩
- ·魔法力量:破晓密令(Spell Force:The Order of Dawn) 试玩版
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:某政府网站被加入的自动下载病毒文件的代码再创新花样(第1版)
下一篇:.NET 数据访问架构指南
精品推荐
热点TOP10
- ·深入浅出.NET泛型编程
- ·如何为嵌入式开发建立交叉编译环境
- ·使用ADS1.2进行嵌入式软件开发
- ·SVG与UML图详解
- ·Linux 系统内核的调试
- ·UML类图详解(1)
- ·统一建模语言(UML)的现状及发展
- ·微软WCF给SOA带来的影响
- ·.NET 数据访问架构指南
- ·质量管理新七种工具简介(1)
- ·利用UML类图设计Java应用程序详解(1)
- ·Tomcat中用web.xml控制Web应用详解
- ·VC中利用多线程技术实现线程之间的通信
- ·WinCE嵌入式开发程序入门
- ·用WPF构建强大的用户体验
- ·ISO9000:2000 质量管理八大原则(1)
- ·掀起你的盖头来:WPF开发简介
- ·Apache APR可移植运行库简介(1)
- ·.NET下可复用的TCP通信层实现之TCP组件
- ·质量意识概述
