论文部分内容阅读
随着嵌入式Linux操作系统应用越来越广泛,对嵌入式Linux内核调试工具的要求也越来越高,嵌入式Linux内核调试技术也逐渐成为嵌入式系统研究的一个热点。 本文系统的研究了在线仿真器(ICE)、片上调试(OCD)、源程序模拟器、调试代理等目前主流的嵌入式系统调试技术,经过对调试能力、适用范围、使用成本等因素的综合比较,选择了调试代理技术作为嵌入式Linux内核调试技术的研究方向,通过对调试代理技术的代表—KGDB(Kernel GDB)的源代码进行深入的研究和分析,抽象出了KGDB的体系结构,掌握了其各个组成部分的工作原理和实现细节,此基础上分析出了KGDB存在的问题,并找出了引发这些问题的原因。 本文最后针对这些问题,利用LKM(Loadable Kernel Module)技术重新设计了调试代理方案,改进了调试代理的体系结构,为嵌入式Linux内核代码的修改定义了统一的标准界面,为各个模块间的耦合定义了良好的接口,并实现了调试代理各组成模块的基本功能。 与KGDB相比,本文所给出的调试代理实现方案在只牺牲一小部分内核调试功能的情况下,提高了调试代理自身稳定性、灵活性和可移植性,降低了与嵌入式Linux内核代码的耦合度,将对嵌入式Linux内核的修改降至很低的程度。该方案实现的调试代理可以与GDB等GNU工具一起为以嵌入式Linux为操作系统的嵌入式系统开发提供一套功能齐全,界面友好,廉价可靠的调试平台,具有良好的应用前景。