[发明专利]一种软件调试的方法和系统无效
申请号: | 201210393852.2 | 申请日: | 2012-10-16 |
公开(公告)号: | CN103077112A | 公开(公告)日: | 2013-05-01 |
发明(设计)人: | 胡亚弟 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京派特恩知识产权代理事务所(普通合伙) 11270 | 代理人: | 张颖玲;任媛 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 调试 方法 系统 | ||
技术领域
本发明涉及嵌入式软件的调试技术,尤其涉及一种软件调试的方法和系统。
背景技术
调试器作为一种重要的软件调试手段,在软件开发中发挥着十分重要的作用,例如,在对软件缺陷进行跟踪调试时,调试器提供了非常多的功能,其中包括:运行、暂停、步进一个进程;设置断点;操作寄存器和内存;捕捉内部异常等。调试器主要包括硬件调试器和软件调试器,硬件调试器的功能强大,但是价格昂贵,使用成本和学习成本都很高;软件调试器通常是对于运行在操作系统层之上的代码进行调试,这种调试不具备可移植性,尤其是对linux、ucos、ecos等软件系统的底层驱动代码的调试支持有限。
相关技术中软件调试的工作原理,通常是运行一段代码,通过显示器来查看其输出,根据其输出结果判断是否运行正确。然而,对于系统的底层驱动代码调试、系统初始化阶段的代码调试等情况,此时由于显示器的驱动程序还未加载,显示器还没有输出,也还没有串口、网口等交互手段,因此,传统的软件调试方法并不适用于以上情况的代码调试。针对系统的底层驱动代码、系统初始化阶段的代码等调试需求,相关技术采用一种点灯方式来调试跟踪代码。但是,这种点灯调试方式不能查看程序的调用栈,即使点灯也需要一些对处理器基本的配置工作,可视性差,操作复杂。
发明内容
有鉴于此,本发明的主要目的在于提供一种软件调试的方法和系统,以软件调试的方法和系统,以解决点灯调试方式的可视性差、操作复杂等问题。
为达到上述目的,本发明的技术方案是这样实现的:
一种软件调试的方法,该方法包括:使用嵌入式系统描述性语言设置关键性调试信息;按照嵌入式系统软件调试信息的格式存储所述关键性调试信息为描述文件;解析所述描述文件,并依据解析的描述文件修改调试代码所生成的可执行文件;依据修改后的可执行文件运行调试代码,并记录调试结果。
所述关键性调试信息包括:选取的断点方式、产生断点的物理内存地址、断点到达时需要查看的寄存器、记录异常信息的内存地址。
所述按照嵌入式系统软件调试信息的格式存储所述关键性调试信息为描述文件,包括:将所述关键性调试信息按照预定义的格式存储为后缀是.cfg的描述文件。
所述依据解析的描述文件修改调试代码所生成的可执行文件,包括:按照cfg文件的格式修改调试代码所生成的可执行连接文件格式ELF文件,根据处理器指令集,将调试代码插入修改后的ELF文件中,并重新链接修改后的ELF文件。
所述依据修改后的可执行文件运行调试代码,并记录调试结果,包括:当运行到断点产生处时,解析堆栈寄存器生成文本根式函数调用,并记录函数调用栈的信息、以及要查看的寄存器的内容到记录异常信息的内存地址。
一种软件调试的系统,该系统包括:
用户扩展接口模块,用于使用嵌入式系统描述性语言设置关键性调试信息;
扩展调试程序处理引擎,用于按照嵌入式系统软件调试信息的格式存储所述关键性调试信息为描述文件;
调试处理例程库,用于解析所述扩展调试程序处理引擎中存储的描述文件,并依据解析的描述文件修改调试代码所生成的可执行文件;
操作系统处理模块,用于依据扩展调试程序处理引擎中修改后的可执行文件运行调试代码,并记录调试结果。
所述关键性调试信息包括:选取的断点方式、产生断点的物理内存地址、断点到达时需要查看的寄存器、记录异常信息的内存地址。
所述扩展调试程序处理引擎,还用于将所述关键性调试信息按照预定义的格式存储为后缀是.cfg的描述文件。
所述调试处理例程库,还用于按照cfg文件的格式修改调试代码所生成的可执行连接文件格式ELF文件,根据处理器指令集,将调试代码插入修改后的ELF文件中,并重新链接修改后的ELF文件。
所述操作系统处理模块,还用于当运行到断点产生处时,解析堆栈寄存器生成文本根式函数调用,并记录函数调用栈的信息、以及要查看的寄存器的内容到记录异常信息的内存地址。
本发明所提供的一种软件调试的方法和系统,使用嵌入式系统描述性语言设置关键性调试信息;按照嵌入式系统软件调试信息的格式存储所述关键性调试信息为描述文件;解析所述描述文件,并依据解析的描述文件修改调试代码所生成的可执行文件;依据修改后的可执行文件运行调试代码,并记录调试结果。这种通过直接修改可执行文件的方式进行代码调试,能够减少移植系统的工作量,特别适用于多核处理器、系统初始化之后才有串口的系统。本发明的调试方式具有轻量级、可扩展、可操作性强、平台无关等特点。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210393852.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:反应釜
- 下一篇:一种剧毒物质反应装置