论文部分内容阅读
嵌入式系统近30年的发展历程使得软硬件协同设计和软件指导硬件设计的思想被广大嵌入式系统设计者接受。在这种形势下,嵌入式软件的验证越来越受制于硬件系统的开发进程。为了解决这个问题,嵌入式虚拟平台成为嵌入式系统发展的主要趋势之一。嵌入式虚拟平台为嵌入式软件提供了一个接近硬件的仿真运行环境。但是通常的嵌入式虚拟平台仅仅能够仿真目标机的机器指令,高级语言程序开发中很重要的源码级调试功能不能够在虚拟平台中得到良好的支持,因此有必要为嵌入式虚拟平台设计一个高级语言源码级调试器。源码级调试的一个重要技术是设计一套合适的调试信息。DWARF调试信息格式以其良好的可移植性和可扩展性在嵌入式开发领域得到广泛的应用。
本文阐述的C语言源码级远程调试器,它能够与一款典型的嵌入式处理器SRP32的虚拟平台协同工作。调试器通过RSP通信协议与虚拟平台中集成的GDBStub远程调试桩通信。要使调试器能够正常工作,首先需要在SRP32平台上移植一种调试信息格式,阐述了DWARF调试信息格式,并介绍了DWARF调试信息的移植方法,使得DWARF调试信息格式能够表达SRP32的应用程序二进制接口(ABI)。在完成对DWARF调试信息解析的基础上,文中重点阐述了调试器的设置断点、单步执行(包括进入子函数的单步执行和不进入子函数的单步执行)和查看变量三个主要功能的具体实现过程。最后结合具体实例对调试器的执行效果进行了分析,分别说明了调试器的优势和不足。结果证明基于SRP32虚拟平台的调试器能够满足嵌入式开发过程中遇到的一些基本的调试需求。