【技术实现步骤摘要】
本专利技术涉及执行重放
,更具体涉及一种应用程序重放方法及系统。
技术介绍
随着用户对软件系统性能要求的提高,并发技术得到了广泛使用。但是并发技术的使用在提高软件性能的同时,也给软件开发人员的开发带来了很大的困难,尤其是对于嵌入式软件系统,由于并发程序执行的不确定性、错误的不可再现性,使得传统的顺序程序调试方法变得不再适用。在并发程序的开发过程中,通常使用执行重放技术来实现软件调试时的错误重现以及程序的重执行,即通过对目标程序的执行情况进行记录追踪,之后在相同的输入条件下,根据记录下来的执行信息来使得目标程序的运行情况再现。执行重放技术的研究对于并发程序的调试有很重要的意义。目前,对于并发程序的执行重放,国内外已经有人提出了一些方法,主要包括:一种基于内容的执行重放方法Recap,通过追踪所有共享内存中的数据来实现程序的重放。该方法的优点是能够单独重放系统中特定的某个或几个进程,但由于需要存储所有的数据操作,导致时间和空间开销很大,实用性较弱,很难用于嵌入式实时系统。此外,还有一类基于顺序的执行重放方法,这类方法通过特殊的方式来保证重放状态下软件系统的操作顺序与执行时的系统操作顺序相一致,从而达到重放错误以及程序冲执行的目的。与基于内容的方法相比,这类方法可以大大减少时间和空间开销。目前大多数的执行重放方法都属于这类方法,典型的有以下几种:LeBlan ...
【技术保护点】
一种应用程序重放方法,其特征在于,所述方法包括以下步骤:S1、目标机下载宿主机的应用程序;S2、在所述应用程序中插桩,获取并上传所述应用程序的执行信息到所述宿主机;S3、根据事件信息在所述应用程序的对应的事件发生点设置断点;所述事件信息由所述宿主机对所述执行信息进行分析和处理得到的,所述事件信息为引起任务间切换的信息;S4、重新启动应用程序,执行遇到所述断点时,根据切换任务信息切换所述应用程序的任务,实现所述应用程序按照原运行顺序执行;所述切换任务信息由所述宿主机根据所述事件信息分析计算得到。
【技术特征摘要】
1.一种应用程序重放方法,其特征在于,所述方法包括以下步骤:
S1、目标机下载宿主机的应用程序;
S2、在所述应用程序中插桩,获取并上传所述应用程序的执行信
息到所述宿主机;
S3、根据事件信息在所述应用程序的对应的事件发生点设置断点;
所述事件信息由所述宿主机对所述执行信息进行分析和处理得到的,
所述事件信息为引起任务间切换的信息;
S4、重新启动应用程序,执行遇到所述断点时,根据切换任务信
息切换所述应用程序的任务,实现所述应用程序按照原运行顺序执行;
所述切换任务信息由所述宿主机根据所述事件信息分析计算得到。
2.根据权利要求1所述的方法,其特征在于,获取所述执行信息
包括获取控制流信息和获取数据流信息;
其中,获取所述控制流信息包括获取任务切换信息、获取同步事
件信息和获取异步事件信息;获取所述任务切换信息为在调度函数内
设置探针实现;获取所述同步事件信息为在相应的函数处设置探针实
现;获取所述异步事件信息为在中断进入函数和中断退出函数处设置
探针实现;
获取所述数据流信息包括获取外部输入的数据信息和获取任务间
传递的数据信息,通过在发生数据接收处设置探针实现。
3.根据权利要求2所述的方法,其特征在于,获取所述同步事件
信息包括获取信号量的获取信息、获取信号量的释放信息、获取消息
的接收信息、获取消息的发送信息以及获取任务的延时信息;其中,
获取所述信号量的获取信息和信号量的释放信息为分别在信号量的获
取函数和信号量的释放函数处设置探针来实现;获取所述消息的接收
信息和消息的发送信息为分别在消息的接收函数和消息的发送函数处
设置探针实现;获取所述任务的延时信息为在任务延时函数处设置探
\t针实现。
4.根据权利要求3所述的方法,其特征在于,获取所述任务切换
信息包括获取事件类型、获取事件发生时的时间戳、获取切换前任务
的上下文信息以及获取切换后任务的上下文信息;
获取所述信号量的获取信息和信号量的释放信息均包括获取事件
类型、获取事件发生时的时间戳、获取事件发生时程序计数器PC的值、
获取信号量编号ID、获取信号量操作时的任务编号ID以及获取事件计
数值;
获取所述消息的接收信息和消息的发送信息均包括获取事件类型、
获取事件发生时的时间戳、获取事件发生时程序计数器PC的值、获取
消息队列编号ID、获取事件发生时的任务编号ID以及获取事件计数值;
获取所述任务的延时信息包括获取事件类型、获取事件发生时的
时间戳、获取事件发生时程序计数器PC的值以获取及事件计数值。
5.根据权利要求1至4任一项所述的方法,其特征在于,得到引
起任务间切换的所述事件信息的具体过程为:
S31、所述宿主机将所述执行信息中的所有事件按照所述事件发生
时的时间戳进行排序;
S32、剔除与所述应用程序无关的事件的...
【专利技术属性】
技术研发人员:姜博,徐晓丹,龙翔,马春雷,高小鹏,万寒,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。