[发明专利]接口函数定位方法、装置及网络设备有效
申请号: | 201910680765.7 | 申请日: | 2019-07-26 |
公开(公告)号: | CN110427272B | 公开(公告)日: | 2022-07-01 |
发明(设计)人: | 杨亚伟 | 申请(专利权)人: | 新华三技术有限公司成都分公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F9/54 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 高萍 |
地址: | 610000 四川省成都市中国(四川)自*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 接口 函数 定位 方法 装置 网络设备 | ||
1.一种接口函数定位方法,应用于网络设备,其特征在于,所述网络设备运行多个线程,所述多个线程中的第一线程通过接口函数获取用于访问数据的信号量,并通过所述信号量访问所述数据,待访问所述数据的第二线程需等待所述信号量被释放后,获取所述信号量并访问所述数据,所述网络设备为每一个线程分配对应的信号栈,所述信号栈用于存放线程已获取的信号量,所述方法包括:
判断所述第一线程对应的信号栈的栈顶信号量是否死锁;
若所述栈顶信号量死锁,从本地记录的信号量与接口函数的对应关系中,查找与所述栈顶信号量对应的接口函数;
将所述栈顶信号量对应的接口函数,确定为问题接口函数。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一线程通过第一接口函数获取到第一信号量,记录所述第一信号量与所述第一接口函数的对应关系;
将所述第一信号量压入所述第一线程对应的信号栈中。
3.如权利要求1所述的方法,其特征在于,所述判断所述第一线程对应的信号栈的栈顶信号量是否死锁,包括:
以预设时间间隔,获取所述第一线程对应的信号栈的栈顶信号量;
若此次获取的栈顶信号量与上一次获取的栈顶信号量相同,累计次数;
若所述次数大于预设的次数阈值,确定所述栈顶信号量死锁。
4.如权利要求1所述的方法,其特征在于,若所述第一线程释放已获取的第二信号量,所述判断所述第一线程对应的信号栈的栈顶信号量是否死锁,包括:
获取所述栈顶信号量;
若所述第二信号量与所述栈顶信号量不同,确定所述栈顶信号量死锁。
5.如权利要求4所述的方法,其特征在于,若所述第一线程释放已获取的第二信号量,所述方法还包括:
从本地记录的信号量与接口函数的对应关系中,查找第一对应关系,所述第一对应关系包括所述第二信号量;
删除所述第一对应关系;
将所述第二信号量从所述第一线程对应的信号栈弹出。
6.一种接口函数定位装置,应用于网络设备,其特征在于,所述网络设备运行多个线程,所述多个线程中的第一线程通过接口函数获取用于访问数据的信号量,并通过所述信号量访问所述数据,待访问所述数据的第二线程需等待所述信号量被释放后,获取所述信号量并访问所述数据,所述网络设备为每一个线程分配对应的信号栈,所述信号栈用于存放线程已获取的信号量,所述装置包括:
死锁判断单元,用于判断所述第一线程对应的信号栈的栈顶信号量是否死锁;
接口函数查找单元,用于若所述栈顶信号量死锁,从本地记录的信号量与接口函数的对应关系中,查找与所述栈顶信号量对应的接口函数;
接口函数确定单元,用于将所述栈顶信号量对应的接口函数,确定为问题接口函数。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
对应关系记录单元,用于若所述第一线程通过第一接口函数获取到第一信号量,记录所述第一信号量与所述第一接口函数的对应关系;
信号量入栈单元,用于将所述第一信号量压入所述第一线程对应的信号栈中。
8.如权利要求6所述的装置,其特征在于,所述死锁判断单元判断所述第一线程对应的信号栈的栈顶信号量是否死锁,包括:
获取所述第一线程对应的信号栈的栈顶信号量;
若此次获取的栈顶信号量与上一次获取的栈顶信号量相同,累计次数;
若所述次数大于预设的次数阈值,确定所述栈顶信号量死锁。
9.如权利要求6所述的装置,其特征在于,所述死锁判断单元判断所述第一线程对应的信号栈的栈顶信号量是否死锁,包括:
若所述第一线程释放已获取的第二信号量,获取所述栈顶信号量;
若所述第二信号量与所述栈顶信号量不同,确定所述栈顶信号量死锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新华三技术有限公司成都分公司,未经新华三技术有限公司成都分公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910680765.7/1.html,转载请声明来源钻瓜专利网。