新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Eclipse的开发环境中调试器设计与实现

基于Eclipse的开发环境中调试器设计与实现

作者:时间:2009-05-22来源:网络收藏

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

本文引用地址:http://www.eepw.com.cn/article/152476.htm


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 下一页

评论


相关推荐

技术专区

关闭