[发明专利]程序死锁的测试方法、装置和设备有效
| 申请号: | 201811402704.6 | 申请日: | 2018-11-22 |
| 公开(公告)号: | CN109669858B | 公开(公告)日: | 2022-04-12 |
| 发明(设计)人: | 郭祥斌 | 申请(专利权)人: | 新华三技术有限公司合肥分公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/52 |
| 代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 王艳芬 |
| 地址: | 230000 安徽省合肥市高新区创*** | 国省代码: | 安徽;34 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 程序 死锁 测试 方法 装置 设备 | ||
1.一种程序死锁的测试方法,其特征在于,包括:
在被测试程序启动后,侦听所述被测试程序中的线程的处理指令;
如果侦听到所述线程的锁指令,记录所述线程的锁对象信息序列;其中,所述锁指令包括加锁指令和解锁指令;所述锁对象信息序列包括:所述加锁指令对应的加锁对象信息和所述解锁指令对应的解锁对象信息;所述锁对象信息序列的记录方式为在映射表中以链表形式记录;
当所述被测试程序停止运行时,获取各个线程的锁对象信息序列中的最简加锁序列;其中,所述最简加锁序列为带有嵌套关系的加锁对象序列;所述带有嵌套关系的加锁对象序列中的嵌套关系为同一个加锁对象序列中,存在一个加锁对象的基础上,又出现另一个加锁对象;
将各个所述线程的最简加锁序列中相同的最简加锁序列合并;
绘制合并后的所述最简加锁序列的有向图;
基于绘制出的所述有向图确定所述被测试程序的死锁信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果被测试程序启动,启动第一定时器;
如果所述第一定时器计时停止,查找已结束的线程;
从查找到的所述已结束的线程的各个锁对象信息序列中,分别提取出具有嵌套关系的加锁对象序列,得到所述已结束的线程的最简加锁序列;
清空所述已结束的线程的锁对象信息序列,并启动所述第一定时器重新计时。
3.根据权利要求2所述的方法,其特征在于,从查找到的所述已结束的线程的各个锁对象信息序列中,分别提取出具有嵌套关系的加锁对象序列,得到所述已结束的线程的最简加锁序列的步骤,包括:
对查找到的所述已结束的线程的每个锁对象信息序列,均按照元素先后顺序读取当前线程的锁对象信息序列中的元素,对于每个读取到的元素均执行如下步骤:
检查所述元素是否为加锁对象信息;
如果所述元素为加锁对象信息,将所述加锁对象信息添加至所述锁对象信息序列的当前最简序列;
如果所述元素为解锁对象信息,复制所述当前最简序列,将复制的所述当前最简序列作为下一个最简序列,从所述下一个最简序列中删除所述解锁对象信息对应的加锁对象信息;
对所述当前最简序列中的重复元素进行去重处理,检查所述当前线程的最简序列集合中是否存在与去重后的当前最简序列相互包含的最简序列;如果存在,则在所述最简序列集合中保留相互包含的最简序列中较长的序列;如果不存在,将去重后的当前最简序列加入至所述最简序列集合中;
将删除所述锁对象信息后的下一个最简序列作为当前最简序列,继续读取所述锁对象信息序列中的下一个元素;
当所述锁对象信息序列中的元素均遍历完,读取所述当前线程的下一个锁对象信息序列中的元素,继续返回所述检查所述元素是否为加锁对象信息的步骤;
如果所述当前线程的所有锁对象信息序列均遍历完,将下一个所述已结束的线程作为新的当前线程,读取新的所述当前线程的锁对象信息序列中的元素,继续返回所述检查所述元素是否为加锁对象信息的步骤;
如果查找到的所述已结束的线程的每个锁对象信息序列均遍历完,将每个所述已结束的线程的最简序列集合作为所述已结束的线程的最简加锁序列。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
如果被测试程序启动,启动第二定时器;
如果所述第二定时器计时停止,停止所述被测试程序的运行,停止所述第一定时器的计时,将未结束的线程设置为结束。
5.根据权利要求1所述的方法,其特征在于,将各个所述线程的最简加锁序列中相同的最简加锁序列合并的步骤,包括:
检查各个所述线程的最简加锁序列中是否存在相同的最简加锁序列;
如果存在相同的最简加锁序列,保留相同的最简加锁序列中的一个,为保留的所述最简加锁序列设置重复标识。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新华三技术有限公司合肥分公司,未经新华三技术有限公司合肥分公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811402704.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种自动化测试方法
- 下一篇:服务测试方法、装置、计算机设备和存储介质





