[发明专利]用于在内核模块和设备驱动程序中检测并发编程错误的方法和系统有效

专利信息
申请号: 201380073923.3 申请日: 2013-03-27
公开(公告)号: CN105074671B 公开(公告)日: 2018-04-20
发明(设计)人: 马志强 申请(专利权)人: 英特尔公司
主分类号: G06F11/36 分类号: G06F11/36;G06F11/30
代理公司: 中国专利代理(香港)有限公司72001 代理人: 臧永杰,胡莉莉
地址: 美国加利*** 国省代码: 暂无信息
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 用于 内核 模块 设备 驱动程序 检测 并发 编程 错误 方法 系统
【权利要求书】:

1.一种用于调试计算机软件的系统,包括:

事件监视器(110);

事件收集器(120),其耦合到所述事件监视器(110);

事件播放器(130),其耦合到所述事件收集器(120);以及

并发错误检测器(140),其耦合到所述事件播放器(130),其中:

被调试的计算机软件包括对应于多个事件的指令;

所述事件监视器(110)被布置成在系统存储器的内核空间部分(102)中执行被调试的计算机软件并且作为数据记录所述多个事件;

所述事件收集器(120)被布置成在系统存储器的用户空间部分(104)中执行并且从所述事件监视器(110)读取所记录的数据以及从系统存储器的所述用户空间部分(104)是可读取的;其特征在于,

所述事件播放器(130)被布置成在系统存储器的用户空间部分(104)中执行并且从所述事件收集器(120)读取所记录的数据并且在系统存储器的所述用户空间部分(104)中从所记录的数据播放所述多个事件中的每一个,创建所述多个事件的部分次序图,确定(302)所述多个事件中的事件是否是上下文进入事件(210),并且如果所述事件是上下文进入事件(210),则创建(310,312)代理线程和用于所述代理线程的事件队列;以及

基于所述部分次序图对所述代理线程的执行进行排定(320);以及

所述并发错误检测器(140)被布置成在系统存储器的用户空间部分(104)中执行并且以与部分次序图一致的次序对从所述事件播放器(130)中接收的所述多个事件中的每一个执行并发错误检测。

2.如权利要求1所述的系统,其中,所述系统被布置成对设备驱动程序软件进行调试。

3.如权利要求1所述的系统,其中,被调试的计算机软件被插装。

4.如权利要求1所述的系统,其中:

所述事件监视器被布置成记录事件类型、线程标识符、CPU标识符、以及指令指针信息。

5.如权利要求4所述的系统,其中:

所述事件监视器进一步被布置成记录上下文进入事件、上下文退出事件、上下文类型、以及与所述上下文进入事件和上下文退出事件有关的上下文标识符信息。

6.如权利要求4或5之一所述的系统,其中:

所述事件监视器进一步被布置成记录用于存储器读取和存储器写入事件的存储器地址信息和存储器大小信息;以及

所述事件监视器进一步被布置成记录用于存储器分配和存储器解除分配事件的存储器地址信息、存储器大小信息、以及存储器类型信息。

7.如权利要求4或5之一所述的系统,其中:

所述事件监视器进一步被布置成记录用于同步事件的同步对象地址和同步类型。

8.如权利要求6所述的系统,其中:

所述事件监视器进一步被布置成记录用于同步事件的同步对象地址和同步类型。

9.如权利要求1所述的系统,其中,创建部分次序图包括确定来自所述事件收集器的事件是否能够被并行执行。

10.如权利要求1所述的系统,其中,所述并发错误检测器被布置成分析来自事件播放器中的代理线程的每个事件。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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