[发明专利]进程调试方法及装置有效

专利信息
申请号: 201010559840.3 申请日: 2010-11-25
公开(公告)号: CN102004692A 公开(公告)日: 2011-04-06
发明(设计)人: 王才才 申请(专利权)人: 中兴通讯股份有限公司
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京康信知识产权代理有限责任公司 11240 代理人: 余刚;吴孟秋
地址: 518057 广东省深*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 进程 调试 方法 装置
【说明书】:

技术领域

发明涉及通信领域,具体而言,涉及一种进程调试方法及装置。

背景技术

由于类Unix系统用户态进程地址空间具有相互独立性,shell程序的空间和用户进程的空间是相对隔离的,所以在一个进程运行过程中,我们无法通过shell获取用户进程空间的信息,也难以实现对运行进程的访问和控制,即对进程进行在线调试。

传统的类Unix系统软件开发,在开发初期会使用一些调试工具,对程序设置断点或是让程序单步执行,来跟踪调试程序。待软件开发完成后,一般都会进行优化编译。以release版本发布,在这种情况下,调试工具是没法对软件进行精确调试跟踪的。如果开发者需要抓取系统运行过程中的一些信息,一般只能查看软件在运行过程中的一些状态输出,或者由串口打印,或者由别的信号来表达。而当软件流程出现异常导致系统无法正常工作的时候,故障现场的数据只能靠程序预定的流程来收集。事后,开发者再根据这些数据来定位故障产生的原因。

这种软件架构存在着一些缺陷,首先,系统运行过程中的状态信息由程序主动输出,这个操作会在系统正常工作流程中,若系统比较复杂,信息量大,这部分流程会消耗很多CPU,严重影响系统性能。其次,在发生软件异常时,异常记录信息由软件设计人员预先设定,故障发生后,开发者只能利用仅有的这些数据进行故障分析,如果某些重要信息没有记录下来,那就只能重新制作临时软件版本去收集信息,再复现这个故障。而很多故障往往是不能或者很难复现的,所以这类故障定位的效率会很低或者根本无法定位。

发明内容

针对相关技术中进程调试过程会消耗很多CPU并难以定位故障的问题而提出本发明,为此,本发明的主要目的在于提供一种进程调试方法及装置,以解决上述问题。

为了实现上述目的,根据本发明的一个方面,提供了一种进程调试方法。

根据本发明的进程调试方法包括:代理线程接收到来自用户的调试命令,其中调试命令用于调试待调试的用户进程,代理线程预先设置在待调试的用户进程中;代理线程根据调试命令,调试待调试的用户进程。

进一步地,代理线程接收到来自用户的调试命令包括:与代理线程对应的代理工具接收到来自用户的调试命令,其中代理工具与用户进程分离;代理工具将调试命令转发给代理线程。

进一步地,代理工具使用队列方式或者管道方式将调试命令转发给代理线程。

进一步地,在代理线程接收到来自用户的调试命令之前,上述方法还包括:代理线程创建用户进程的符号表;代理线程在代理线程的私有变量中存储符号表。

进一步地,代理线程根据调试命令,调试待调试的用户进程包括:代理线程分离调试命令,得到调试函数名和参数;代理线程在符号表中查找与调试函数名对应的执行函数;代理线程执行该执行函数。

进一步地,代理线程根据调试命令,调试待调试的用户进程包括:代理线程获取用户进程的状态信息;代理线程向代理工具发送用户进程的状态信息,其中代理工具与用户进程分离。

进一步地,代理线程根据调试命令,调试待调试的用户进程包括以下至少之一:调试命令为Printfifo,代理线程判断代理线程的输出是否已经重定向到管道,如果判断结果为否,则将代理线程的输出重定向到管道,否则忽略调试命令;调试命令为Debug,代理线程判断是否处于调试状态,如果判断结果为否,则代理线程进入调试状态,否则忽略调试命令;调试命令为Quit,代理线程判断代理线程的输出是否已经重定向,如果判断结果为是,则恢复代理线程的输出的重定向,否则忽略调试命令。

为了实现上述目的,根据本发明的另一个方面,提供了一种进程调试装置。

根据本发明的进程调试装置包括:接收模块,用于接收来自用户的调试命令,其中调试命令用于调试待调试的用户进程,接收模块所属的代理线程预先设置在待调试的用户进程中;调试模块,用于根据调试命令,调试待调试的用户进程。

进一步地,进程调试装置还包括:创建模块,用于创建用户进程的符号表;存储模块,用于在代理线程的私有变量中存储符号表。

进一步地,调试模块包括:分离子模块,用于分离调试命令,得到调试函数名和参数;查找子模块,用于在符号表中查找与调试函数名对应的执行函数;执行子模块,用于执行该执行函数。

通过本发明,在用户进程中添加了代理线程,它可以根据用户的调试命令调试用户进程,解决了相关技术中进程调试过程会消耗很多CPU并难以定位故障的问题,从而实现故障的快速、准确地定位,并且,如果没有需要,代理线程是保持阻塞的,所以仅仅会增加代码体积,而不会消耗CPU影响系统性能。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010559840.3/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top