首页> 中文学位 >基于重放的并发程序调试技术研究
【6h】

基于重放的并发程序调试技术研究

代理获取

目录

文摘

英文文摘

东南大学学位论文独创性声明及使用授权说明

第一章引言

1.1选题依据

1.2基于重放的程序调试的目的和意义

1.3通信关系提取的目的和意义

1.4研究现状

1.5论文结构

第二章并发的有关问题及程序分析技术

2.1进程的基本概念

2.2进程间的同步与通信

2.2.1同步

2.2.1通信

2.3并发执行的不确定性

2.3.1消息队列

2.3.2共享内存

2.4程序分析技术

2.4.1函数内分析

2.4.2跨函数分析

第三章基于重放的并发调试

3.1调试策略

3.2源代码插装

3.3同步事件监视与记录

3.3.1向量时间戳

3.3.2同步事件的记录

3.4并发程序的重放

3.4.1同步操作的插装

3.4.2程序的重放

3.5并发程序的调试

3.5.1断点的实现

3.5.2单步运行

3.5.3信息显示

第四章通信关系的提取

4.1进程间通信关系静态分析

4.1.1波动分析

4.1.2图形化表示

4.1.3实例分析

4.2进程间通信关系动态分析

4.2.1交互信息的获取

4.2.2动态通信关系描述

第五章系统的设计与实现

5.1系统总体框架

5.2 C程序分析模块的设计

5.2.1词法分析生成工具FLEX和语法分析器生成工具BYACC

5.2.2 C程序分析器的主要数据结构

5.3并发程序调试模块

5.3.1系统函数简介及封装

5.3.2数据结构与算法

5.4通信关系提取模块

5.4.1静态通信关系分析数据结构

5.4.2静态通信关系可视化

5.4.3动态通信关系分析数据结构

5.4.4动态通信关系可视化

5.4用户界面

第六章结束语

致谢

附录一攻读硕士学位期间完成的论文列表

附录二攻读硕士学位期间参加的科研项目列表

参考文献

展开▼

摘要

随着并发程序日益广泛的使用,并发程序的调试也变得越发的重要。传统的循环调试技术主要是设置断点,多次执行源程序,逐步定位错误位置。因为顺序程序的执行结果主要取决于程序的输入,所以这种方法对于顺序程序十分有效,但是对于并发程序,问题要复杂得多。 首先,并发程序的并发性和不确定性,导致了对于一个给定的并发程序,即使在相同的输入下,也可能产生不同的结果,或者是结果相同,但是执行的路径不同。正确发现和纠正错误的前提是能够不断地让同样的错误重复出现,然而在并发程序调试时,可能无法得到错误信息,或者观察到了错误,再次运行时却无法得到上次的错误状态。这就迫切需要有一种机制,使得在调试时能够确定性地执行程序。其次,并发程序一般都含有多个进程,它们之间存在着复杂的通信和同步,因此在调试时程序员希望对并发程序的执行流程和进程间的通信有一个整体的把握,然而人工查阅代码获得进程间的通信关系几乎是不可能的。这将使得程序员难于分析和理解并发程序,调试时必须在多个进程间频繁地切换和盲目地跟踪,调试效率将大大降低。这就有必要给程序员提供进程间的通信关系。 基于上述问题,我们研究和开发了并发程序分析和调试工具,其中包括基于重放的并发程序调试工具和进程间通信关系提取和描述工具。该工具基于用C语言编写的进程间以消息队列和共享内存为通信机制的并发程序。基于重放的并发程序调试工具追踪并发程序执行,以便在重放的基础上调试并发程序;通信关系提取和描述工具用于自动提取源代码中可能的通信关系和本次执行时实际的通信关系,并将关系以图形的方式显示给用户。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号