[发明专利]基于回放的代码调试方法有效
申请号: | 201610954150.5 | 申请日: | 2016-11-03 |
公开(公告)号: | CN108021495B | 公开(公告)日: | 2021-05-14 |
发明(设计)人: | 蒋欣欣;张杨;闫帅 | 申请(专利权)人: | 北京计算机技术及应用研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 刘东升 |
地址: | 100854*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 回放 代码 调试 方法 | ||
1.一种基于回放的代码调试方法,其特征在于,包括以下步骤:
S1、通过识别插桩点,在插桩点植入探针,对源程序进行插桩,为代码回放做准备;
S2、应用向量时间戳标识并行程序的每一个同步事件,进行同步事件的追踪与记录;
S3、进行并行程序的确定性回放;
步骤S1具体包括以下步骤:
源程序插桩:采用将源程序中的标准库函数替换为自定义函数的方法进行源程序插桩;
捕获动态信息:将插桩后的源程序进行编译和链接,运行程序,随着探针的逐步插入,记录探针抛出的动态信息,写进事件记录库;
数据处理与分析:通过对所述事件记录库中的数据进行提取和分析,揭露程序内部的行为和特征,为代码回放做准备;
步骤S2具体包括以下步骤:
同步事件的标识:通过为并行程序的每一个同步事件打上一个向量时间戳的方式对事件进行标识,然后根据这些事件的向量时间戳判断事件之间的时序关系,将时序关系进行记录;
同步事件的追踪与记录:在追踪程序运行时判断每个消息接受操作所接受消息的来源及去向信息,并进行记录,每一个进程维护一个同步事件信息,用于追踪该进程当前运行到的同步事件以及向量时间戳;并且在追踪时,为每一个进程设置一个周期性的检查点,每隔预设时间,调用函数sigsuspend()自动挂起,调用检查点程序,保存当前进程的信息后,继续唤醒进程执行;
步骤S 3中,当程序在运行过程中遇到错误终止,或者运行结束时,通过访问事件记录库中的信息,在回放模块与错误模块的相互协调下进行并行程序错误状态的回放与调试;
步骤S3具体为:当程序开始执行时,目标进程的执行请求在请求队列中排队;回放模块从事件记录库中读取记录阶段所记录的事件信息,并与目标进程提交的执行请求进行比较,决定是允许此次并行操作的执行,还是将其在进程等待队列中执行挂起状态,等待下一次的响应,错误模块接收调试指令,控制进程的执行情况,在单步执行的基础上,读取进程的状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京计算机技术及应用研究所,未经北京计算机技术及应用研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610954150.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:可移动景观建筑物的施工方法
- 下一篇:气动液体混合罐