【毕业学位论文】(Word原稿)基于SPARC体系架构的软件调试系统的设计与实现-软件工程_第1页
【毕业学位论文】(Word原稿)基于SPARC体系架构的软件调试系统的设计与实现-软件工程_第2页
【毕业学位论文】(Word原稿)基于SPARC体系架构的软件调试系统的设计与实现-软件工程_第3页
【毕业学位论文】(Word原稿)基于SPARC体系架构的软件调试系统的设计与实现-软件工程_第4页
【毕业学位论文】(Word原稿)基于SPARC体系架构的软件调试系统的设计与实现-软件工程_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士学位论文 (专业学位) 基于 系架构 的软件调试系统 的设计与实现 姓 名: 学 号: 所在院系: 软件 学院 职业类型: 软件工程师 专业领域: 软件 工程 指导教师: 副指导教师: 二 一四年三月 A in 2014 f n 基 于 R C 体 系 架 构 的 软 件 调 试 系 统 的 设 计 与 实 现 姓 名 同济大学 学位论文版权使用授权书 本人完全了解同济大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名: 年 月 日 同济大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任由本人承担。 学位论文作者签名: 年 月 日同济大学硕士学位论文摘要 I 摘要 为解决目前星载计算机软 件开发中,没有成熟完善的 论在 们拟建立 从而方便的在 境下进行代码编写、代码编译、代码调试功能。该项目将深入的研究代码的高效编辑、挖掘代码编译机制、优化代码编译过程、统一调试手段、便捷调试过程,构建 目前航天卫星主要采用了 程语言主要采用了编程语言方面,通过前期对 言的研究,认为:尽管 整个目标代码体积比使用汇编语言大;但无疑的, 言在软件开发效率、软件的模块化、低复杂度、可移植性、可维护性方面都具有较大的优势。 本文 在对 7体系 机构、 用方法以及软件调试 技术 进行了详细调研的基础上,分析了现阶段 卫星 嵌入式软件开发 及 调试的现状和用户需求, 设计 了基于 台 的软件开发及调试体统。 在 实现方法上, 系统 底层板级支持包 采用 发采用 言, 系统 前台开发采用 面设计 。 关键词 :软件调试, 程 调试 , I n to is no or we to in to be of is an da of da In on da da to of so is of of no In on 7 a on of of of of On DA 录 第 1 章 引言 . 6 述 . 6 状分析 . 6 究内容 . 6 文主要内容 . 7 第 2 章 理论背景 . 7 片综述 . 7 算机 . 8 特点 . 8 优点 . 9 系结构 . 9 存器窗口 . 9 第 3 章 系统需求 . 10 择调试平台( . 11 点设置( . 11 步调试 ( . 11 量和表达式 看( . 12 看( . 12 看寄存器( . 13 看内存功能( . 13 看调用栈功能( . 13 看 码以及对应汇编功能( . 14 用户调试功能( . 14 看任务信息( . 14 看程序的输入输出( . 15 第 4 章 系统设计 . 15 同济大学硕士学位论文目录 本设计概念 . 15 构设计 . 20 第 5 章 系统实现 . 24 试系统功能 . 24 户端 块 . 25 块 . 25 块 . 26 块 . 27 块 . 33 块 . 43 块调用关系图 . 43 译功能的模块调用关系图 . 43 试功能的模块调用关系图 . 44 口设计 . 46 部接口 . 46 部接口 . 48 行设计 . 49 行模块组合 . 49 行控制 . 50 统的控制流和数据流图 . 51 第 6 章 系统评测 . 52 统测试概况 . 52 试目标 . 52 行环境 . 52 试方法 . 52 试结果 . 52 第 7 章 结论与展望 . 56 论 . 56 一步工作的方向 . 57 同济大学硕士学位论文目录 V 致谢 . 58 参考文献 . 59 个人简历、在读期间发表的学术论文与研究成果 . 61 第 1 章 引言 6 第 1 章 引言 述 为解决目前星载计算机软件开发中,没有成熟完善的 论在 们拟建立 从而方便的在 境下进行代码编写、代码编译、代码调试功能。该项目将深入的研究代码的高效编辑、挖掘代码编译机制、优化代码编译过程、统一调试 手段、便捷调试过程,构建 状分析 目前航天卫星主要采用了以 程语言主要采用了汇编指令和 言实现。在编程语言方面,通过前期对 为:尽管 整个目标代码体积比使用汇编语言大; 但无疑的, 言在软件开发效率、软件的模块化、低复杂度、可移植性、可维护性方面都具有较大的优势。 究内容 基于上述背景,有理由相信 但是,尽管目前已有 面对着后续大量的基于 面临着 译、下载、调试的手段较为底层,难以掌握两大困境。 言开发的入门门槛较高,成为部分型号系统想考虑使用、但又谨慎涉足的瓶颈点。此外,在目前的星载软件开发中, 有一个完善的软件开发、调试环境,包括: ( 1)编辑和编译使用的环境需要在 此代码编写效率较低。 ( 2)由于采用了 编译技术,所 以英国 司开发的 译器的编译方法都为命令行模式,使用者很难以直观的方式对整个编译过程进行了解和监控,对使用带来很大的不便,也隐藏软件研制过程中的不可靠因素。第 2 章 理论背景 7 ( 3)由于编译器提供的编译选项和调试命令复杂,新上手的使用者需要通过消化大量技术资料、实际摸索后方能掌握。 项目实施目标是:第一阶段着重以目前正开展的两个卫星型号为应用背景,着力解决 过研制一个基于 境的集成化、可视化的 译、加载、调试平台,极大地降低 开发的入门门槛,大大改善软件开发、调试环境。 文主要内容 论文 第一章介绍了航天目前软件开发平台、调试手段以及 言在基于件 开发 以及 调试 发展和 应用前景。 第二章介绍 了 相关技术 理论背景,介绍了 2位 第三章进行 了基于 试 系统的系统需求。对 各项 需求通过 格 说明。 第四章 针对 前 一章的需求分析,进行了系统设计以及结构设计。将 需求 分析的 结果 把系统进行了模块化设计 , 以及模块间的层次关系。 第五章 则对每个子模块进行了详细设计。对 每一个 子模块 的 功能、 输入 数据、模块 处理流程、 输出 数据、 相关 的数据结构进行了详细的 设计 描述 。 最后 是系统的评测及今后的 展望 。 第 2 章 理论背景 片综述 7规范,是一款高度集成的高性能 32位 芯片支持 洲航天局)相关标准,位嵌入式航天应用领域提供了全面的开发环境。 采用 = 300 造。带有片内并发瞬时错误和永久错误检测功 能,专为航天应用领域涉及。 浮点单元( 存储器控制器和 实时应用领域, 供一个高安全级看门狗、两个定时器、一个中断控制器及多个并行和串行接口。容错能力通过内外总线上的奇偶校验机制和第 2 章 理论背景 8 外部数据总线上的 制实现。片内调试程序( 口边界扫描使芯片设计具有高度的可测试性。 算机 精简指令系统计算机执行种类较少的计算机指令,从而达到更高的执行速度(提高 万条指令每秒 )。该术语( 加州 大学伯克来分校的教师 特点 指令集简单:在 令集仅包括简单的基本指令,而各种复杂指令均有这些基本指令组成。该指令集由硬布线实现,提高了指令执行速度。单个执行周期内不需要微指令。 指令长度相同:每条指令的长度相同,从而可以通过一次操作提取。 存储器访问次数减少:只有装载和存储指令需要访问存储器。计算指令不访问存储器。装载 /存储指令在存储器和寄存器之间工作,从而简化了控制硬件,使处理器时钟周期达到最短。 寻址方式少:该指令集仅使用近转移、远转 移和变址方式访问存储器。 单周期指令:大多数指令在一个时钟周期内完成,实现了同时处理多条指令。这种流水线结构是提高 理器速度的关键技术。 流水线:流水线是一种设计理念。在此理念下,处理器一次处理多条指令,并且无需等待前一条指令完成后再执行下一条指令。流水线由四级组成:取指、译码、执行和写入。这四级并行工作。前一级一旦执行完毕,就将结果传送到下一级,然后处理下一条指令。流水线并不能缩短指令的执行时间(每条指令仍然需要相同的时间完成),但是提高了总体效率。 依赖性: 当会降低处理器速度。由于每条指令都需要一定时间存储结果,且还有其他指令同时处于工作状态,之后的指令可能需要等待之前的指令结果存储完毕后才能执行。 然而,程序中指令通过重排(称为指令调度),即可从 第 2 章 理论背景 9 优点 速度:由于简化指令集使流水线设计成为可能,在使用类似的半导体工艺和相同时钟频率的情况下, 理器的性能通常达到 理器的 2到 4倍。 集成度:由于 此占用的芯片空间要小得多。其他功能部件,诸如浮点运算单元、存储器控 制器和标准外设,均可置于同一芯片中。 软件:使用较小的指令集简化了操作系统和应用程序的开发,让用户可以更为灵活地使用微处理器的空间 编译程序:由于减少了指令数目,高级语言编译程序生成的代码效率更高。 系结构 可缩放处理器体系结构由 司于 1987率先推出,是一个开放的业界标准体系结构。 系结构定义了 数单元)即 点单元)和可选的处理器)。其他可选部件包括存储器控制器、存储器管理单元和高速缓存。 存器窗口 系结构的一个重要概念来自玻壳来 片的设计思想。即寄存器窗口概念。当程序运行时,处理器可访问 32个 32位处理器寄存器,其中 8个为全局寄存器,另外 24个为当前寄存器窗口。 窗口中的前 8个寄存器乘坐“输入寄存器”( 调用一个函数时,这些寄存器保存可能用到的参数。 之后的 8个寄存器称为“本地寄存器”( 用于保存在函数执行期间可能用到的任何数据。 最后 8个寄存器称为“输出寄存器”( 用于向被调用函数传递参数。 一个函数调用另一个函数时,主调函数可以执行 令。此指令使一个内部计数器即当前窗口指针( 一,使寄存器窗口下移。主叫函数的输出寄存器变为被叫函数的输入寄存器,被叫函数同时获得一套本地寄存器和输出寄存器供自己使用。由于无需将寄存器和返回地址保存在堆栈中,因此只有指针发第 3 章 系统需求 10 生改变。 第 3 章 系统 需求 跨平台的调试系统功能主要包括以下几大项: 表 7调试 系统 的主要功能 编号 功能名称 对功能的简要描述 试平台选择 能够进行调试平台选择,使用相应的 具进行调试这些平台主要包括: 台 点设置 能够对编译器生成的调试代码进行分析,找出源代码和调试代码的对应关系,自动地将源代码的断点设置转化为调试代码的断点,并对断点进行管理。 步调试 能够对源代码进行单步调试,将源代码的单步调试操作自动关联到编译代码,能够执行 单步调试。 量和表达式看 能够对 言级的变量和表达式进行监控,并在程序的调试过程中依据变量或者表达式的变化情况进行相应的显示和提示(变量 /表达式值改变的时候能够显示为红色)。 看 能够对当前运行代码中的变量进行显示,变量的变化情况进行相应的显示和提示(变量改变的时候能够显示为红色)。 看寄存器 能够在程序调试过程中,对模拟器寄存器的值进行显示,并在程序的调试过程中依据寄存器的变化情况进行相应的显示和提示(寄存器值改变的时候能够显示为红色)。 看内存 能够在程序调试过程中,对内存区域的取值进行显示,并在程序的调试过程中依据内存值的变化情况进行相应的显示和提示(内存值改变的时候能够显示为红色)。 看调用栈 能 够在程序的调试过程中,对 数的调用情况以栈的形式进行显示,最早调用的函数显示在栈底,最后调用的函数显示在栈顶。 看 码和对应汇编语言 能够在程序的调试过程中,显示当前函数的 码和对应汇编代码,以一行 码,多行汇编的形式显示。 用户同时调试 能够支持多个用户同时登陆调试服务器,并且能够独立的进行相应的调试工作,调试过程和结果回传到本地,不会造成互相的窜扰 看任务 信息 能够在程序的调试过程中,能够察看 数中的任务的相关信息 看程序的输入输出 能够在控制台中查看程序的输出,并在控制台中输入程序需要的参数 第 3 章 系统需求 11 择调试平台( 在调试功能中,首先需要选择对应的 试平台,可以生成对应的调试文件。 表 9编译平台选择功能 功能名称 编译平台选择 输入 激励事件 在新建项目的时候,选择目标平台 数据 目标平台选择 处理 依据选择的目标平台,调用 令来进行相应的编译工作,生成对应平台下的对应的可执行文件 输出 目标平台下能够进行编译,生成对应的可执行文件 点设置( 调试功能中需要断点设置功能,能够在 代码上通过 者相应的菜单设置断点和消除断点,软件运行至断电设置处,停止运行。 表 9断点设置功能 功能名称 断点的设置 输入 激励事件 用户单击设置断点按钮 选择右键设置断点菜单 按快捷键 据 代码文件和设置断点命令 处理 能够在 代码上通过 者相应的菜单设置断点和消除断点,并能够自动的将断点信息传送到调试服务器上,自动调用调试服务器 令,调试服务器能够根据断点的设置进行代码的中 断。 输出 调试服务器在调试状态下运行代码时在断点位置中断 步调试 ( 调试功能中的单步调试运行功能在调试状态下,实行单步运行可以运行到下一条语句。 表 10单步调试功能 功能名称 单步调试功能( 输入 激励事件 用户单击单步调试按钮 第 3 章 系统需求 12 按快捷键 11 数据 代码文件和单步命令 处理 在调试状态下,如果执行 跳过函数调用,直接执行到下一条语句,如果执行 序将进入函数内部,直接执行到被调用函数的第一条语句;系统自动调 用调试服务器 令,调试服务器能够进行相应的单步调试 输出 代码文件和单步调试的命令 量和表达式 看( 表 11变量和表达式 功能名称 变量和表达式 看( 输入 激励事件 用户在编辑区选中相应的变量,然后单击右键菜单“添加 量” 用户在编辑区选中相应的变量,然后按快捷键 按添加表达式按钮,在弹出的添加对话框输入要添加的表达式名称。 数据 代码文件和 令 处理 在调试状态下,在变量和表达式窗口输入要监控的变量 /表达式,系统自动将监控的变量 /表达式调用调试服务器 令,调试服务器能够进行相应的 言变量 /表达式的监视察看。 输出 调试服务器在调试状态下显示变量 /表达式的值 变量 /表达式的值变化时用红色字体显示。 看( 表 12 功能名称 看 输入 激励事件 用户进行单步操作( 让程序继续执行的操作。 数据 代码文件和 令 处理 在调试状态下,在局部变量窗口能够自动的现实当前的所有局部变量的取值,系统自动调用 令,调试服务器能够返回当前的所有局部变量,并自动显示到 输出 调试服务器在调试状态下显示当前局部变量 第 3 章 系统需求 13 看寄存器( 表 13查看寄存器功能 功能名称 查看寄存器 输入 激励事件 除关闭调试器外的所有调试操作 数据 代码文件和 令 处理 进入调试状态时,在寄存器窗口能够自动的获得当前寄存器的取值,系统自动的调用 令,调试服务器能够返回当前寄存器的取值。 在调试状态下,用户每进行一次调试操作,系统都会调用 令,返回寄存器的当前值,并与当前寄存器窗口中的寄存器值进行比较,如果寄存器值有变化,则用红色字体显示相应的寄存器值。 输出 调试服务器在调试状态下显示寄存器值 寄存器值有变化时用红色字体显示 看内存功能( 表 14查看内存功能 功能名称 查看内存 输入 激励事件 除关闭调试器外的所有调试操作 数据 代码文件和 令 处理 进入调试状态时,在内存窗口能够自动的获得指定范围内内存的取值,系统自动的调用 令,调试服务器能够返回当前范围内内存的取值 在调试状态下,用户每进行一次调试操作,系统都会调用 令,返回内存的当前值,并与当前内存窗口中的内存值进行比较,如果内存值有变化,则用红色字体显示相应的内存值。 输出 调试服务器在调试状态下显示内存值 内存值有变化时用红色字体显示 看调用栈功能( 表 15调用栈查看功能 功能名称 调用栈查看 输入 激励事件 除关闭调试器外的所有调试操作 数据 代码文件和 令 处理 进入调试状态,在调用栈窗口能够自动的获得当前系统执行的函数调用栈,系统自动的调用 令,调试服务器能够返回第 3 章 系统需求 14 当前的函数调用栈调用情况以栈的形式进行显示,最早调用的函数显示在栈底,最后调用的函数显示在栈顶; 在调试状态下,用户进行各种调试操作,调用栈窗口也会调用 令,返回当前的函数调用情况。 输出 调试服务器在调试状态下显示调用栈 看 码 以及对应汇编 功能( 表 16查看 功能名称 查看 码和对应汇编语言 输入 激励事件 除关闭调试器外的所有调试操作 数据 代码文件和 令 处理 进入调试状态时,在反汇编窗口能够自动的获得当前 代码对应的汇编代码,系统自动的调用 令,调试服务器能够返回当前 码对应的反汇编代码 在调试状态下,用户进行各种调试操作,调 用栈窗口也会调用 令,返回当前的函数调用情况。 输出 调试服务器在调试状态下显示当前代码的反汇编代码 用户调试功能( 表 17多用户同时调试功能 功能名称 多用户同时调试 输入 激励事件 多于一个用户递交服务请求。 数据 用户的服务请求 处理 在多个用户登录编译服务器时,按照不同的 构和目录结构建立独立的调试服务进程,保障调试的独立性,不会造成多人调试互相干扰。 输出 多人在服务器上进行调试工作不会相互干扰 看任务信息( 表 18查看任务信息功能 功能名称 查看任务信息 输入 激励事件 除关闭调试器外的所有调试操作 数据 代码文件和 令 处理 进入调试状态时,在寄存器窗口能够自动的获得当前寄存器的取值,系统自动的调用 令,调试服务器能够返回当前寄存器的取值。 第 3 章 系统需求 15 在调试状态下,用户每进行一次调试操作,系统都会调用 令,返回寄存器的当前值,并与当前寄存器窗口中的寄存器值进行比较,如果寄存器值有变化,则用红色字体显示相应的寄存器值。 输出 调试服务器在调试状态下显示寄存器值 寄存器值有变化时用红色字体显示 看程序的输入输出( 表 19查看程序输入输出功能 功能名称 查看程序输入输出功能 输入 激励事件 程序有执行结果需要输出 程序有需要输入的参数 数据 调试程序需要的参数 处理 进入调试状态后,有些程序的执行需要用户输入参数,客户可以在界面的控制台中输入参数传递给服务器端的调试器。 程序在调试过程当中,有一些除寄存器、内存等之外的信息通过控制台显示,义供客户察看。 输出 调试程序的执行结果 第 4 章 系统设计 本设计概念 考虑到调试功能需跨平台操作,即 境下的客户端需要向 译器和调试器在服务器中)发送文件及其操作信息,同时也需要接收从服务器返回的编译和调试信息,包括运行结果,出错信息等。客户端与服务器的物理结构示意图如下:第 4 章 系统设计 16 H E W L E T C K A R 端 3 客 户 端 4交 换 机服 务 器客 户 端 2客 户 端 1图 1系统的物理结构示意图 因为是跨平台系统,所以我们需要利用 远程调用等技术来实现跨平台的通信。而编译部分指令相对较少,编译返回信 息的格式也相对有限,我们利用 调试的指令多样,且数据格式复杂(调试指令多,参数复杂,调试返回信息格式复杂),如果采用 息格式的包装、解析等工作的工作量将十分巨大,所以我们采用了远程调用的技术来实现跨平台的通信。在逻辑上我们将整个系统按两大功能分成两部分实现:编译模块和调试模块。两个模块相互独立。 H E W L E T C K A R 端 3 客 户 端 4交 换 机编 译 器客 户 端 2客 户 端 1调 试 器图 2系统的逻辑结构示意图 第 4 章 系统设计 17 调试子模块利用 达到了一种位置上的透明性:服务器暴露出远程对象的接口,而客户端就好像在本地使用的这些对象的接口一样,这样就隐藏了底层的信息,客户端也就根本不需要知道对象是在哪台机器上。 服务器端 直处在监听状态,为监听到的每一个客户连接请求建立一个子进程,负责对该连接中的所有操作进行管理。服务器的监听工作过程如下图所示: 客 户 端 1客 户 端 端 2服 务 器 h t t p d 程 序连接请求图 3第一步: 客 户 端 1客 户 端 端 2服 务 器 h t t p d 程 序c h i l d p r o _ 1数据传输图 4第二步: 第 4 章 系统设计 18 客 户 端 1客 户 端 端 2服 务 器 h t t p d 程 序c h i l d p r o _ 1数据传输连接请求图 5第三步: 客 户 端 1客 户 端 端 2服 务 器 h t t p d 程 序c h i l d p r o _

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论