[发明专利]一种交叉调试器中条件断点实现方法有效
申请号: | 200810001131.6 | 申请日: | 2008-01-16 |
公开(公告)号: | CN101216802A | 公开(公告)日: | 2008-07-09 |
发明(设计)人: | 程圣宇;何剑;崔云峰;刘东;钟卫东 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 龙洪;霍育栋 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 交叉 调试 条件 断点 实现 方法 | ||
技术领域
本发明涉及计算机软件,具体涉及一种交叉调试器中条件断点实现方法。
背景技术
调试器是软件开发人员不可或缺的重要工具。调试器提供的断点功能、程序运行流程控制功能、数据查看功能、以及堆栈分析功能等等,能够有效地帮助软件开发人员快速定位并消除代码中的故障,极大地提高软件开发的效率,增强软件产品的稳定性。在嵌入式领域,由于单板(本文后面称为目标机)上的资源常常很有限,不能在目标机上直接运行调试器程序。因此,嵌入式软件开发通常使用交叉调试模式。
断点功能是调试器的最基础、最核心的功能之一,其具体含义是:用户在被调试程序的指定位置插入一个断点,被调试程序运行过程中遇到断点时停止运行,并把对CPU的控制权交给调试器。这时用户可以查看变量值、查看寄存器值、也可以分析堆栈,以判断程序当前状态,从而定位可能存在于代码中的故障。断点又可以分为普通断点和条件断点两种。对于普通断点,被调试程序一旦遇到断点就立即停止运行,并把控制权交给调试器,这称为断点命中;对于条件断点,被调试程序遇到断点时,满足所设定的条件则停止运行,并把控制权交给调试器,否则跨过该断点继续运行。条件断点通常包含以下三类条件:一是线程号条件,即所设置的断点仅对指定的线程有效;二是忽略次数条件,即断点被遇到指定的次数加1次的时候才生效;三是表达式条件,即当表达式为真时,断点才生效。
交叉调试器的基本体系架构如图1所示,由运行在主机端的调试器前台和运行在目标机的调试代理构成。在现有的交叉调试器中,条件断点的实现方式是:被调试程序遇到断点,操作系统内核通知调试代理,调试代理直接把断点事件告知调试器前台,如果当前断点是一个条件断点,则由调试器前台分析各种条件是否满足,这些条件包括线程号是否匹配,条件表达式的值是否为真,是否之前已经遇到该断点指定的次数,如果所有这些条件(如果用户设置了对应的条件的话)都满足,则让被调试程序停留在断点位置,并向用户报告断点命中,这时用户可以查看变量和堆栈等信息,判断被调试程序的当前状态是否正确;如果至少有一个条件不满足,则跨过当前断点,让被调试程序继续运行。
上述实现方式主要有以下两点不足:
1.效率低下。调试代理每一次向调试器前台报告断点事件以及调试器前台跨过断点并且恢复被调试程序运行,都会产生网络流量。例如,用户给某个断点设置的忽略次数很大,例如10000次,那么该断点在被遇到10001次时才会生效,之前遇到的10000次都应该被忽略,而这本应该被忽略的10000次遇到断点事件,都由调试器前台来处理,不仅会增加网络流量,而且也会给调试器前台和调试代理本身带来很大的负荷。因此,普通的交叉调试器中,条件断点的效率底下。
2.不够灵活。普通的调试器中,条件断点的三种条件(线程号、忽略次数和条件表达式)的逻辑组合关系是固定的,不能灵活配置。
发明内容
本发明需要解决的技术问题是如何提供一种交叉调试器中条件断点实现方法,能够提高条件断点调试效率,进一步支持条件断点的线程号条件、忽略次数条件和表达式条件,并且可以对条件断点的这三种条件的逻辑组合关系进行灵活配置。
本发明的上述技术问题这样解决,提供一种交叉调试器中条件断点实现方法,其特征在于,包括以下步骤:
1.1)在目标机端调试代理中设置与主机端调试器前台原始断点数据结构同步的对应目标断点数据结构;
1.2)目标机端调试代理利用所述对应断点数据结构对条件断点事件进行一级调试,仅将其中满足所述目标断点数据结构的事件通知并由主机端调试器前台进行二级调试。
按照本发明提供的实现方法,该实现方法还包括直接将普通断点事件通知主机端调试器前台进行调试。
按照本发明提供的实现方法,所述步骤1.1)中同步包括调试器前台与调试代理建立调试连接时,须把在建立调试连接之前插入原始断点数据结构的断点信息同步到所述目标断点数据结构中。
按照本发明提供的实现方法,所述步骤1.1)中同步包括插入断点、删除断点或修改断点属性时,须把调试器前台的原始断点数据结构的增、删或修改信息同步到所述目标断点数据结构中。
按照本发明提供的实现方法,所述步骤1.1)中同步包括查询对应断点数据结构详细信息时,须把所述目标断点数据结构中忽略次数信息同步到调试器前台的原始断点数据结构中。
按照本发明提供的实现方法,所述步骤1.1)中同步包括调试器前台与调试代理断开调试连接之后,调试代理销毁所述目标断点数据结构。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810001131.6/2.html,转载请声明来源钻瓜专利网。