论文部分内容阅读
当前嵌入式技术炙手可热,随着其技术的不断发展和完善,如今嵌入式系统越来越复杂,大大增加了引发软件bug的可能性,这就凸显了调试器在嵌入式系统开发中的作用。作为程序医生,调试器在发现、消除软件bug方面,有着不可替代的作用。与PC上传统的单机调试不同,嵌入式系统由于受到软硬件资源的限制,采用交叉调试技术,即调试器分为目标机端和宿主机端两部分。如何利用调试技术去除软件中的bug,提高调试效率,缩短软件开发时间成了嵌入系统开发中的一个重要话题。Acoral是一个由学生开发的嵌入式操作系统,它开放源码,具有支持多核和强实时的特性,是一款极具开发潜力的操作系统。目前并没有现成的调试器支持它,因此如果为其开发一款服务器端的调试器,即能够深入了解acoral内核,也能接触到嵌入式中调试器设计的核心技术,具有很强的实践意义。本文首先详细分析了嵌入式调试器设计方面的关键技术,包括dwarf调试信息格式、调试信息的读取以及调试的主要功能,然后结合acoral的源码分析了acoral的框架和与调试相关的部分,以gdb为基础,设计并实现了一款针对于acoral的源码级目标机端调试器,最后将acoral移植到PB11MPCore多处理器开发板,通过对acoral中的线程进行调试,对调试器的功能进行了测试和验证。