首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于Eclipse的开发环境中调试器设计与实现
来源:本站整理  作者:佚名  2009-05-22 09:17:50



摘 要:调试功能是软件集成开发环境中最重要也是最复杂的功能之一,调试功能的完善与否很大程度上决定了一个集成开发环境的优劣。作为一个大型软件集成开发环境的一部分,为了实现其调试功能,这里通过简要分析Eclipse CDT的调试机制,设计并实现了一个应用于基于Eclipse CDT的嵌入式开发环境的调试器,其中实现了一系列调试功能如断点设置、单步执行、源代码搜索以及变量、内存和寄存器查看等,为整个集成开发环境的实现打下了基础。
关键词:Eclipse;CDT集成开发环境;调试功能;调试器


O 引 言
    在软件开发过程中,程序出现错误在所难免。无论是普通软件还是嵌入式软件,调试器都是开发过程中不可缺少的工具。
    “调试器”是用于跟踪程序执行情况,快速有效地定位错误产生的位置,从而找到引起错误的原因,并将其消除的工具。调试功能是开发环境中最重要、也是最复杂的功能之一,其好坏在很大程度上决定了一个开发环境的优劣。调试是一个从错误现象出发,通过某种手段寻找错误代码的过程。调试的基本原理是在发现程序运行的错误后,设法再现程序的执行过程,并获取程序执行中的有关信息,通过对这些信息的分析,逐步找到引起错误的原因。循环调试是最基本的调试模型;循环调试的意思是反复运行程序,利用打印输出、断点、单步等技术,观察程序状态,控制程序运行,逐渐逼近错误代码;循环调试的前提是程序运行是确定的,即对同样的输入,程序的执行过程是相同的。串行程序具有确定性。
    调试的基本行为有观察、控制与修改。观察是对程序的执行状态进行察看,包括处理机状态、进程状态和数据状态等;控制即控制程序的执行过程,例如设断点、单步执行等;修改就是改变程序的运行状态,如修改变量的值、修改指令计数器、修改状态寄存器等。调试器在不同程度上支持这3种行为的综合使用。
    经典的调试手段有断点(Break Pointing)、跟踪(Tracing)、断言(Assertion)、分析(Analysis)、打印输出等。在源程序级支持图形化的用户界面使得调试工作更加容易进行。对于实时程序或专用机上的程序还常采用模拟手段进行调试。


1 CDT的调试机制解析
    CDT提供了4个插件用于实现调试功能。这几个插件对于GDB调试器进行操作,并且应用GDB提供的MI接口进行通信。这四个插件分别为org.eclipse.cdt.debug.mi.cote插件,用以实现GDB的MI接口功能及GDB调用功能;org.eclipse.cdt.debug.mi.ui插件,主要用于实现GDB的相关设置选项界面;org.eclipse.cdt.debug.core插件,用于实现CDT的调试模型,包括用串口调试,用网卡调试,设置波特率等功能;org.eclipse.cdt.debug.ui插件,用于实现界面显示功能,包括调试视图,调试动作等,比如单步调试,设置断点,下载,运行程序等调试功能。它们之间的关系如图1所示。

    标准的调试模型并不能代表所有的体系结构,像嵌入式硬件结构是不同的,有可能是多个处理器的不同应用,也可能包括DSP处理器的应用。CDT平台支持将非标准的调试器集成到平台的视图和动作中。调试器围绕着活动调试上下文进行操作,活动调试上下文是在调试视图中选择的一帧或者一个线程,这个上下文驱动了源代码搜索,变量和寄存器显示,以及动作使能等操作。它们之间的关系如图2所示。

2 调试器的详细设计
2.1 断点设置
    调试器提供的断点依赖于调试系统所具有的能力,以及应用这些能力可以构建的集合功能。例如,用行断点实现运行到行,实现条件断点等。
    断点属性保存在标记中,平台提供接口IMarker,作为文件中的一般目的标记。标记是原始数据类型键值对的存储。平台提供接口IBreakpoint实现断点行为。为了实现复杂的断点行为,调试器需要提供IBreakpoint的实现。所有的断点都有一个相关的标记保存属性和在编辑器中显示,提供和断点类型相关的标记扩展点。如果需要断点被保存,需要指定persistent为true。其内容如下:

[1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:177,707.00000 毫秒