论文部分内容阅读
确定性重放技术对于软件调试和故障诊断具有非常重要的作用。在记录阶段确定性重放记录系统的执行状态与非确定性事件,在重放阶段根据记录阶段的日志记录恢复系统的执行状态并控制非确定性事件的执行,使系统具有与记录阶段相同的执行流程,从而使系统中的错误得以重现,有助于程序错误的调试和诊断。但是,目前确定性重放技术仅被用来重现错误,在软件调试和故障诊断方面没有发挥更大的作用。 本文从增强确定性重放技术在软件调试和故障诊断方面的能力入手,以软件模拟器为研究基础平台,提出在确定性重放基础上加入故障注入与逆向调试功能,从而实现提高软件调试和故障诊断效率的目的。本文主要的研究工作如下: 1)研究了在确定性重放基础上故障注入的实现,分析了可故障注入对象的类型,详细介绍了外设的开启及状态调整、故障注入执行流程的日志记录及日志文件的管理。 2)研究了在确定性重放基础上逆向调试的实现,设计实现了逆向调试协议和若干逆向调试命令。 3)研制了一个面向TI C67X DSP的确定性重放原型系统DRFIRD,具有日志记录、故障重现与重放、故障注入、逆向调试等功能,通过对其进行功能和性能测试,验证了上述工作的有效性。