[发明专利]异常线程定位方法及装置有效
申请号: | 201711385324.1 | 申请日: | 2017-12-20 |
公开(公告)号: | CN109947636B | 公开(公告)日: | 2022-11-04 |
发明(设计)人: | 蔡正平 | 申请(专利权)人: | 浙江宇视科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/34 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 梁香美 |
地址: | 310000 浙江省杭州市滨江区西兴街道江陵路*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 异常 线程 定位 方法 装置 | ||
1.一种异常线程定位方法,其特征在于,应用于嵌入式设备,所述方法包括:
根据所述嵌入式设备中各线程的线程标识以轮询的方式获得对应线程的运行状态参数,其中所述运行状态参数包括对应线程的线程状态及心跳参数中的至少一种;
根据获得的各线程的运行状态参数判断对应线程的状态是否异常;
在线程的状态被判定为异常时,根据异常状态的线程的线程标识向对应线程发送定位信号,并调用处理动作函数获取到该线程的栈帧信息,而后将获取到的所述异常状态的线程的栈帧信息记录到日志文件中进行保存,其中所述处理动作函数用于获取捕获到所述定位信号的线程所对应的栈帧信息,所述栈帧信息包括对应线程的返回地址、局部变量及栈帧地址中的至少一种。
2.根据权利要求1所述的方法,其特征在于,当所述运行状态参数包括对应线程的心跳参数,所述心跳参数包括对应线程当前的线程心跳值及对应线程在上次轮询时的线程心跳值时,所述根据获得的各线程的运行状态参数判断对应线程的状态是否异常的步骤包括:
将各线程当前的线程心跳值及对应线程在上次轮询时的线程心跳值进行比较;
若存在线程当前的线程心跳值与上次轮询时的线程心跳值相同时,判定该线程的状态为异常。
3.根据权利要求1所述的方法,其特征在于,当所述运行状态参数包括对应线程的线程状态,所述线程状态包括运行状态、休眠状态及异常状态时,所述根据获得的各线程的运行状态参数判断对应线程的状态是否异常的步骤包括:
对各线程的线程状态进行识别;
若对应线程的线程状态为异常状态时,判定该线程的状态为异常。
4.根据权利要求3所述的方法,其特征在于,当所述运行状态参数还包括对应线程的心跳参数,所述心跳参数包括对应线程当前的线程心跳值及对应线程在上次轮询时的线程心跳值时,所述根据获得的各线程的运行状态参数判断对应线程的状态是否异常的步骤还包括:
若对应线程的线程状态为运行状态时,将所述线程当前的线程心跳值与上次轮询时的线程心跳值进行比较,并在相同时判定该线程的状态为异常,相应修改该线程的线程状态为异常状态。
5.一种异常线程定位装置,其特征在于,应用于嵌入式设备,所述装置包括:
参数获取模块,用于根据所述嵌入式设备中各线程的线程标识以轮询的方式获得对应线程的运行状态参数,其中所述运行状态参数包括对应线程的线程状态及心跳参数中的至少一种;
异常判断模块,用于根据获得的各线程的运行状态参数判断对应线程的状态是否异常;
线程定位模块,用于在线程的状态被判定为异常时,根据异常状态的线程的线程标识向对应线程发送定位信号,并调用处理动作函数获取到该线程的栈帧信息,而后将获取到的所述异常状态的线程的栈帧信息记录到日志文件中进行保存,其中所述处理动作函数用于获取捕获到所述定位信号的线程所对应的栈帧信息,所述栈帧信息包括对应线程的返回地址、局部变量及栈帧地址中的至少一种。
6.根据权利要求5所述的装置,其特征在于,当所述运行状态参数包括对应线程的心跳参数,所述心跳参数包括对应线程当前的线程心跳值及对应线程在上次轮询时的线程心跳值时,所述异常判断模块根据获得的各线程的运行状态参数判断对应线程的状态是否异常的方式包括:
将各线程当前的线程心跳值及对应线程在上次轮询时的线程心跳值进行比较;
若存在线程当前的线程心跳值与上次轮询时的线程心跳值相同时,判定该线程的状态为异常。
7.根据权利要求5所述的装置,其特征在于,当所述运行状态参数包括对应线程的线程状态,所述线程状态包括运行状态、休眠状态及异常状态时,所述异常判断模块根据获得的各线程的运行状态参数判断对应线程的状态是否异常的方式包括:
对各线程的线程状态进行识别;
若对应线程的线程状态为异常状态时,判定该线程的状态为异常。
8.根据权利要求7所述的装置,其特征在于,当所述运行状态参数还包括对应线程的心跳参数,所述心跳参数包括对应线程当前的线程心跳值及对应线程在上次轮询时的线程心跳值时,所述异常判断模块根据获得的各线程的运行状态参数判断对应线程的状态是否异常的方式还包括:
若对应线程的线程状态为运行状态时,将所述线程当前的线程心跳值与上次轮询时的线程心跳值进行比较,并在相同时判定该线程的状态为异常,相应修改该线程的线程状态为异常状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江宇视科技有限公司,未经浙江宇视科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711385324.1/1.html,转载请声明来源钻瓜专利网。