首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 62 毫秒
1.
在基于消息传递的并发程序中,由于进程的调度顺序以及消息延时等特性,使得同样输入的不同执行呈现不同的结果,这种并发程序行为的不确定性直接导致了程序错误的不可再现性,即后续的执行无法再现前次执行的错误。以反复执行程序、重复再现故障为核心的循环调试方法变得不再可用。因此,对于并发程序的调试问题,我们将传统的循环调试方法加以扩充,引入追踪和重演的机制,重放程序的某次执行,以消除并发程序的错误不可再现性。  相似文献   

2.
张泉  陈涵生 《计算机工程》1998,24(10):35-37,41
随着并发程序的应用越来越广泛,对于并发程序的调试问题也越来越显得突出。  相似文献   

3.
伍晓泉  魏峻 《软件学报》2014,25(3):457-471
在多核和并发技术得到广泛应用的今天,如何有效地调试并发程序,成为一个重要且亟待解决的研究课题.并发程序的不确定性及其行为的复杂性,使得传统的调试技术难以得到有效的应用;而软件维护场景中错误发现与错误调试过程的分离使得错误重现难以实现,面向缺陷报告的调试需求使得自动的错误定位技术难以应用,加剧了调试的困难.针对软件维护阶段由缺陷报告导向的程序调试场景,提出了可视化的并发程序调试方法.该方法能够根据缺陷报告中的信息对程序进行切片,缩小需要分析的代码范围;通过静态分析构造出程序行为的全局视图,帮助程序员发现隐含的程序执行路径;根据事件结构的语义简化程序行为视图,使得行为模型规模可控;根据图形中的分支,引导用户关注路径中的关键操作,从而更快地发现程序中的缺陷.与动态调试方法相比,该方法能够避免错误重现的代价.借助缺陷报告中的信息以及事件结构模型的特点,该方法能够尽量减少状态爆炸的发生.已开发出的交互式并发程序调试工具原型JESVis Debugger,初步实现了所提出的方法.  相似文献   

4.
基于一种虚拟机设计思想,用C语言实现了一个虚拟机平台,通过在虚拟机中加入管理程序以实现对用户作业的并发控制。该方法提供了利用串行程序设计语言进行并发程序开发的一种实现方法。通过实验证明不通过机器低层及硬件的手段也能有效地在顺序执行的平台上实现并发程序。  相似文献   

5.
针对嵌入式软硬件资源的限制问题,以及现有的软件开发工具仅支持一对一的调试模式的问题,在嵌入式远程调试原理的基础上,分析了嵌入式交叉调试原理,在此基础上提出了基于调试代理的远程协同调试模型,并详细给出了远程协同调试实现的核心--调试代理功能的实现;其次在国产集成开发环境JARI-IDE和同产嵌入式操作系统JARI-Works上给出了实现方法和功能验证,实现了分布在不同地点的开发人员共享资源,实时协同工作,为模块化分工调试提供了一种新的实现方法.  相似文献   

6.
7.
语音驱动的人脸重演的目标是通过输入一段任意语音,驱动目标人物重演相应表情。现有方法无法仅以一段自然场景下视频作为训练素材,实现可操控的高保真语音驱动人脸重演,为此,提出了一种基于LD特征的语音驱动人脸重演方法。首先,对输入视频进行人脸对齐,检测人脸关键点并提取LD特征;然后,通过音频特征提取模块将输入音频映射为一段64维的潜码,构建基于多层感知机的编码器和解码器,由解码器将潜码解码为LD特征后,通过编码器将其还原为潜码表示;接着,将更新后的潜码输入基于网格的NeRF获得采样点密度和颜色,通过体绘制输出头部重演RGB帧;同时,将姿势输入身体变形模块,合成重演帧的身体部分。实验结果证明,方法能够根据输入语音内容生成高保真重演结果,并且在重演过程中能够对目标人物的面部表情进行个性化控制。  相似文献   

8.
一种基于依赖分析的并发程序潜在死锁检测算法   总被引:1,自引:0,他引:1  
死锁是并发程序特有的一种运行时错误,由于并发程序在执行时的不确定性,死锁的检测和定位是非常困难的.本文提出了一种基于依赖分析的并发程序潜在死锁检测算法,该算法是一种静态分析算法,能检测并发程序中是否存在潜在死锁,并能定位死锁发生时各线程可能被挂起的语句节点.本文给出了算法的形式化定义和时间复杂度分析,实验测试结果表明算法是正确且有效的.  相似文献   

9.
过程挖掘可以根据企业信息系统生成的事件日志建立业务过程模型。当实际业务过程发生变化时,过程模型与事件日志之间会产生偏差,这时需要对过程模型进行修正。对于含有并行结构的过程模型修复,由于加入自环和不可见变迁等因素,有些现有的修正方法的精度会降低。因此提出一种基于逻辑Petri网和托肯重演的并行结构过程模型修复方法。首先根据子模型的输入输出库所与日志的关系,确定子模型的插入位置;然后通过托肯重演的方式确定偏差所在位置;最后根据基于逻辑Petri网提出的方法进行过程模型的修复。在ProM平台上进行了仿真实验,验证了该方法的正确性和有效性,并与Fahland等方法进行对比分析。结果表明,所提方法的精度达到85%左右,相比Fahland、Goldratt方法分别提高了17和11个百分点;在简洁度方面该算法没有增加自环和不可见变迁,而Fahland和Goldratt方法均增加了不可见变迁和自环;三种方法的拟合度均在0.9以上,而Goldratt方法略低一些。以上证明用所提方法修正后的模型具有更高的拟合度和精度。  相似文献   

10.
美国两位机器人技术专家费尔南多·奥若拉纳和布伦丹·伯恩斯开发出了一种名叫Sleep Waking的智能机器人,这个机器人可以像演员演戏那样将人在睡梦的活动再次呈现出来。  相似文献   

11.
于佳耕  周鹏  武延军  赵琛 《软件学报》2012,23(6):1620-1634
进程重放用于程序调试,无法重现系统全部状态,难以分析错误根源.而系统级重放复杂且难于实现,尚无模型分析方法提供理论指导,确保重放执行与记录执行等价.为了使执行重放系统适用于系统调试,建立虚拟机指令执行模型,提出了虚拟机执行重放的定义,给出并证明了成功重放的充分条件.根据该充分条件,设计实现了基于Xen的虚拟机重放系统CASMotion.CASMotion讨论了Xen DomU中不确定事件的种类,给出各类事件的重放方法以及时间点的匹配算法.CASMotion成功实现了不确定事件的准确重放,实验结果表明其具有较低的性能损失.  相似文献   

12.
高岚  王锐  钱德沛 《软件学报》2013,24(6):1390-1402
多核处理器并行程序的确定性重放是实现并行程序调试的有效手段,对并行编程有重要意义。但由于多核架构下存在共享访存不同步问题,并行程序确定性重放的研究依然面临多方面的挑战,给并行程序的调试带来很大困难,严重影响了多核架构下并行程序的普及和发展。分析了多核处理器造成并行程序确定性重放难以实现的关键因素,总结了确定性重放的评价指标,综述了近年来学术界对并行程序确定性重放的研究。根据总结的评价指标,从纯软件方式和硬件支持方式对目前的确定性重放方法进行了分析与对比,并在此基础上对多核架构下并行程序的确定性重放未来的研究趋势和应用前景进行了展望。  相似文献   

13.
多核并行程序的调试是一个公认的困难问题,困难主要来自于程序执行的不确定性.可重现调试(replay debug)提供了消除程序中不确定性的能力,但是现有的可重现调试解决方案都无法应用于商用的软硬件平台中,且进行调试所带来的性能损失会随着并发度的增加而超线性地增长.提出了一种基于运行快照的新型并行程序调试方法SDT(snapshot debug tool).该方法以离线的断点设置、运行快照捕捉和运行快照细化为基础,提出了一套可以指导用户由粗到细发现错误的调试过程,并在通用的软硬件平台上进行了实现.实验结果显示,在8线程的并发条件下,使用SDT调试所带来的时间性能损耗平均为5188%;同时当线程数增长4倍时,使用SDT所带来的额外时间消耗最多增长1倍,具有很好的可扩展性.记录快照的数据量是影响SDT性能的重要挑战,实验证明通过使用增量式的快照记录方式可以有效地降低需要记录的数据量,减少记录快照花费的时间,提高SDT的整体性能.  相似文献   

14.
研究了虚拟化体系结构下全系统回放的方法,设计实现了基于半虚拟化设备模型的虚拟机回放系统VMRS(virtual machine based replay system)。通过在虚拟机管理器中记录虚拟机内发生的不确定性事件并在回放时模拟不确定性事件的发生,从而完整重现系统的执行流。实验表明系统具有良好的性能和可扩展性。  相似文献   

15.
Narayanasamy  S. Pokam  G. Calder  B. 《Micro, IEEE》2006,26(1):100-109
With software's increasing complexity, providing efficient hardware support for software debugging is critical. Hardware support is necessary to observe and capture, with little or no overhead, the exact execution of a program. Providing this ability to developers will allow them to deterministically replay and debug an application to pin-point the root cause of a bug.  相似文献   

16.
并发Java程序动态分析及重演技术研究   总被引:2,自引:0,他引:2  
Java语言在并发程序方面的广泛应用对软件测试提出了新的挑战。众所周知,由于并发程序的不确定性,使得并发程序的设计、开发、调试和测试都非常困难。文章介绍了Safepro/Java中的多线程测试技术,通过对Java源程序进行适当的修改并且保持语义不变,跟踪并发Java程序的运行过程,收集有关数据并对数据进行分析,最终控制并发Java程序的重演。  相似文献   

17.
近年来,多线程程序中性能bug问题越来越突出.传统用于检测并发错误的记录/重放系统存在重放开销和执行时间不精确等问题,因此不适于对性能bug的研究.针对上述问题,提出了一种可用于多线程程序性能分析的重放系统——PerfPlay.首先,分析了用于程序性能分析时必要的程序信息;其次,基于程序执行轨迹,探讨了不同的重放策略,并提出了基于程序调度的重放策略,以保证重放系统的性能保真度;最后,基于提出的性能重放系统,进一步研究了经典的“线程间不必要锁竞争”所造成的性能问题.通过与传统的重放策略作比较,PerfPlay保证了重放系统的性能保证度.并经过案例研究,发现并进一步验证了若干真实的多线程程序性能问题.  相似文献   

18.
基于案例再现的软件开发综合实训项目设计   总被引:1,自引:0,他引:1  
项目开发综合实训是软件开发教学中的一个重要环节。本文介绍了基于案例再现实训的教学模式,重点对案例设计一般原则、一般方法和案例再现实训的考核方式作了介绍。实践证明,该模式的应用能取得比较好的效果。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号