Font Size: a A A

Continuous Online Program Slicing

Posted on:2014-02-27Degree:MasterType:Thesis
Country:ChinaCandidate:L W LuFull Text:PDF
GTID:2248330392461059Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Nowadays, software systems become complex with the development of computertechnology. Meanwhile program analysis is playing a more and more important role in thesoftware development and maintenance. Program slicing is one of program analysistechniques. The analysis result of program slicing can reflect the dependence among thestatements in a program. Thus, the programmer can leverage program slicing to helpcomprehend the objective program and reason about it. However, program slicing itself isa time consuming technique so that its application is limited in the interactive programdebugging scenario.In this work, we have analyzed the process of traditional PDG-based program slicingalgorithm. And we find out the most time-consuming part is the data flow analysis used toconstruct the PDG. According to the characteristics of the interactive program debuggingscenario, we use demand-driven and incremental data flow analysis to optimize theprogram slicing. Demand driven slicing leverage the demand driven dataflow analysis tocompute dataflow information according to the demand of slicing process. It aims to avoidcomputing unused dataflow solution. Incremental slicing aims to reduce the respondingtime by updating the previous dataflow solution according to the program modification.In this work, we implement our optimized program slicing algorithm based on Sootprogram analysis framework. Our evaluation is carried out on10real world bugs inApache open source project. We compare our optimized algorithm with the traditional onein a simulated interactive debugging scenario. The evaluation result shows our programslicing algorithm can narrow down the program size, and give the programmer a morefocused view of program. Meanwhile, our algorithm gains a considerable speedup to the traditional one. The response time is around1second while processing a small sizeprogram like Apache math. To some large scale software such as the Apache Hadoop, theresponse time is about10seconds. Both of them can meet the demand of interactivedebugging.
Keywords/Search Tags:Program Debugging, Program Slicing, Algorithm Optimization, Incremental, Demand-Driven
PDF Full Text Request
Related items