###
Journal of Software:2014.25(3):457-471

基于事件结构的并发程序可视化调试方法
伍晓泉,魏峻
(中国科学院 软件研究所 计算机科学国家重点实验室, 北京 100190;中国科学院 软件研究所 软件工程技术研究开发中心, 北京 100190;中国科学院大学, 北京 100049)
Visual Debugging Concurrent Programs with Event Structure
WU Xiao-Quan,WEI Jun
(State Key Laboratory of Computer Science, Institute of Software, The Chinese Academy of Sciences, Beijing 100190, China;Technology Center of Software Engineering, Institute of Software, The Chinese Academy of Sciences, Beijing 100190, China;University of Chinese Academy of Sciences, Beijing 100049, China)
Abstract
Chart / table
Reference
Similar Articles
Article :Browse 2068   Download 2590
Received:January 30, 2013    Revised:May 03, 2013
> 中文摘要: 在多核和并发技术得到广泛应用的今天,如何有效地调试并发程序,成为一个重要且亟待解决的研究课题.并发程序的不确定性及其行为的复杂性,使得传统的调试技术难以得到有效的应用;而软件维护场景中错误发现与错误调试过程的分离使得错误重现难以实现,面向缺陷报告的调试需求使得自动的错误定位技术难以应用,加剧了调试的困难.针对软件维护阶段由缺陷报告导向的程序调试场景,提出了可视化的并发程序调试方法.该方法能够根据缺陷报告中的信息对程序进行切片,缩小需要分析的代码范围;通过静态分析构造出程序行为的全局视图,帮助程序员发现隐含的程序执行路径;根据事件结构的语义简化程序行为视图,使得行为模型规模可控;根据图形中的分支,引导用户关注路径中的关键操作,从而更快地发现程序中的缺陷.与动态调试方法相比,该方法能够避免错误重现的代价.借助缺陷报告中的信息以及事件结构模型的特点,该方法能够尽量减少状态爆炸的发生.已开发出的交互式并发程序调试工具原型JESVis Debugger,初步实现了所提出的方法.
Abstract:The multi-core and concurrency technology are widely used today. How to debug concurrent programs effectively becomes an important topic. Due to nondeterministic and complex behavior of the concurrent program, traditional debugging techniques are inappropriate to apply. In bug-reports-oriented debugging scenarios, the separation of error detection and error debugging processes makes the failures more difficult to reproduce, which exacerbates the difficulty of debugging. For bug-report-oriented debugging scenarios, this paper proposes a method to visualize program behaviors to assist programmers to debug manually. The method reasons concurrent program behavior through static analysis, giving a global view to programmers to help them observe the behavior of the program and guiding their attention on suspicious operation. This approach can avoid the cost of reproducing concurrent failures. With the information in the bug report as well as the feature of the event structure model, it eliminates the state explosion problem that may arise during static analysis of concurrent programs. A prototype of interactive debugging tool for Java called JESVis Debugger, is developed as an initial realization of the proposed method.
文章编号:     中图分类号:    文献标志码:
基金项目:国家高技术研究发展计划(863)(2012AA011204);国家自然科学基金(61173005,61003029) 国家高技术研究发展计划(863)(2012AA011204);国家自然科学基金(61173005,61003029)
Foundation items:
Reference text:

伍晓泉,魏峻.基于事件结构的并发程序可视化调试方法.软件学报,2014,25(3):457-471

WU Xiao-Quan,WEI Jun.Visual Debugging Concurrent Programs with Event Structure.Journal of Software,2014,25(3):457-471