论文部分内容阅读
随着软件设计结构和代码的复杂化,在软件开发过程中,调试技术越来越重要。调试器,特别是源代码级调试器是目前最方便的调试方式,它可以提供程序源代码、栈、反汇编代码、断点、寄存器、变量、表达式和进程等信息,以帮助用户跟踪、查找和修改程序中的错误。调试器已经有一系列比较成熟的算法和数据结构,且与操作系统的交互十分紧密,需要使用操作系统的很多支持来实现调试功能,并通过用户接口将这些功能提供给用户。
对于嵌入式系统来说,它很难运行一个完整的源代码级调试器,而一般使用远程调试方式,因此对远程调试技术的研究与实践具有重要意义。GNU/GDB是最流行的调试器之一,它的功能非常强大,不仅提供一般源代码级调试器所具有的调试功能,还提供对嵌入式系统的远程调试。
UNICORE是北京大学微处理器研究开发中心研制的一款32位RISC微处理器,它拥有定长指令系统和32个通用寄存器,并提供了完整的例外处理机制。目前UNICORE处理器已经应用在北大众志PKUnity网络计算机系统中,该系统拥有GNU/Linux操作系统、GNU/Gcc编译器、GNU/Glibc、GNU/二进制工具链、Xwindows以及桌面应用软件等整套软件环境。
本文结合北大众志PKUnity网络计算机系统的科研项目,对GDB远程调试进行了研究与实践,在详细分析GDB远程调试机制的基础上,提出了UNICORE平台调试环境的搭建方案,实现了PKUnity网络计算机上应用程序和操作系统的调试环境,并利用PKUnity网络计算机提供的硬件调试工具为操作系统的远程调试实现了硬件指令断点和数据断点。该调试环境已在MPRC的研究与开发中得到了实际应用,它帮助开发者查找出很多程序错误,解决了很多问题,这加快了PKUnity网络计算机上软件的开发速度。