[发明专利]线程异常的定位方法及系统有效
申请号: | 201310046875.0 | 申请日: | 2013-02-05 |
公开(公告)号: | CN103092746A | 公开(公告)日: | 2013-05-08 |
发明(设计)人: | 林三龙;程晓龙 | 申请(专利权)人: | 上海大唐移动通信设备有限公司;大唐移动通信设备有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 200233 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 线程 异常 定位 方法 系统 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种线程异常的定位方法及系统。
背景技术
线程是操作系统分配处理器时间的基本单元,进程中可以有多个线程同时执行代码。每个线程都维护异常处理程序、调度优先级和一组系统用于在调度该线程前保存线程上下文的结构。现有监控线程运行状态的方法有两种:
心跳检测:建立一个监控线程,监控各个线程是否有心跳,如果一段时间内某个线程没心跳,则认为这个线程异常;
状态轮询:建立一个监控线程,每隔一段时间查询各个线程的运行状态,如果发现某个线程运行停止,则认为这个线程异常;
以上两种现有技术共有的主要缺点是:
只能监控线程的状态,如果线程异常并不能确定线程异常的具体位置;
当线程在进行复杂耗时运算时,采用以上两种技术可能存在误判线程运行状态的情况。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:提供一种线程异常的定位方法及系统,以快速定位引起线程异常的代码位置。
(二)技术方案
为解决上述问题,一方面,本发明提供了一种线程异常的定位方法,包括:
监控各被监控线程的运行状态,判断被监控线程运行是否异常;
在判断得到被监控线程发生异常时生成转储文件,所述转储文件包括进程内各线程的内存、堆栈信息;
通过调试所述转储文件,定位被监控线程异常所在的代码位置。
优选地,在所述监控被监控线程的运行状态的步骤之前还包括增加监控线程的步骤,通过所述监控线程来监控各被监控线程的运行状态。
优选地,通过所述监控线程来监控各被监控线程的运行状态,判断被监控线程运行是否异常的步骤包括:
所述各被监控线程在初始化时注册到所述监控线程,并设定各被监控线程的超时时间、计数器的初始值、异常次数的初始值和异常次数限值;
各被监控线程在正常运行过程中更新自身的计数器;
若监控线程发现某个被监控线程在所述设定的超时时间内未更新自身的计数器,则为该被监控线程的异常次数加1;
如果被监控线程对应的异常次数大于所述设定的异常次数限值,则判断该被监控线程发生异常,并将该被监控线程对应的计数器和异常次数重置为对应的初始值。
优选地,所述如果被监控线程对应的异常次数大于所述设定的异常次数限值,则判断该被监控线程发生异常的步骤包括:如果被监控线程对应的连续异常次数大于所述设定的异常次数限值,则判断该被监控线程发生异常。
优选地,若监控线程发现某个被监控线程在前一个超时时间内未更新自身的计数器,但是在当前超时时间内更新了自身的计数器,则将所述被监控线程对应的异常次数重置为对应的初始值。
优选地,在判断该被监控线程发生异常的步骤之后还包括在日志中记录异常线程的识别号的步骤。
优选地,所述调试转储文件的步骤包括:根据所述异常线程的识别号找到对应的异常线程。
优选地,所述转储文件为dmp文件。
另一方面,本发明还提供了一种线程异常的定位系统,包括:
监控模块,用于监控各被监控线程的运行状态,判断被监控线程运行是否异常;
转储文件生成模块,用于在判断得到被监控线程发生异常时生成转储文件,所述转储文件包括进程内各线程的内存、堆栈信息;
异常定位模块,用于通过调试所述转储文件,定位被监控线程异常所在的代码位置。
(三)有益效果
本发明不仅能监控线程运行状态,而且当线程运行异常时,通过转储文件自动记录线程当前运行的内存和堆栈信息,开发人员根据记录的内存和堆栈信息,就可以快速定位引起线程异常的代码位置,方便线程的调试和修复。
本发明被监控线程对应的连续异常次数大于所述设定的异常次数限值时才判断该被监控线程发生异常,可以降低某些复杂并耗时线程误判的概率。
本发明的方法增加监控线程即可完成,适用范围较广,对已发布的软件也适用。
附图说明
图1为根据本发明实施例的一种线程异常的定位方法的流程示意图;
图2为根据本发明实施例的一种线程异常的定位方法的流程示意图;
图3为根据本发明实施例监控线程和被监控线程之间的时序图;
图4为根据本发明实施例一种线程异常的定位系统的结构示意框图。
具体实施方式
下面结合附图及实施例对本发明进行详细说明如下。
实施例一:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大唐移动通信设备有限公司;大唐移动通信设备有限公司,未经上海大唐移动通信设备有限公司;大唐移动通信设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310046875.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种内容定位方法和路由设备
- 下一篇:一种静态路由的跟踪方法和设备