Debugging by Filtering History Slices

Decanato - Facoltà di scienze informatiche

Data: 20 Settembre 2018 / 10:30 - 12:00

USI Lugano Campus, room CC-351, Main building (Via G. Buffi 13)

You are cordially invited to attend the PhD Dissertation Defense of Mohammad Reza AZADMANESH on Thursday, September 20th, 2018 at 10h30 in room CC-351 (main building) 


Debugging is a classic problem in a software development process. Despite all the advances in automating the debugging process, recent research studies show that debugging remains what it was 50 years ago, largely manual. Debugging is a search for the cause of a failure within a two-dimensional environment: time and space. Traditional debugging tools assist in one-dimensional search. Modern debugging tools contribute to the search within the two-dimensional environment. While modern debugging tools facilitate answering questions regarding the causality of program behavior, they are rarely used in practice. We believe this is, in part, due to the large size of the execution histories and the complexity of manually tracking the causalities within the history. The modern debugging tools require the developer to traverse the dependencies either interactively or through issuing queries about the appropriate information flows. None of these approaches scales for traversing the full causality chain of a failure. In this thesis, instead of a manual traversal of the causality chain by the developer to find appropriate clues about the bug, we propose to automate the traversal of the causality chain, and allow the developer to specify the elements within the causality chain which are of importance for reasoning about the bug as filters. The BLAST is our tool for incarnating this idea. It provides a model for tracking the dependencies automatically, thus allowing to analyze the full causality chain of the failure without involving the developer. An advantage of this approach is that it enables queries about the history rather than a single state. We show how we can formulate different program comprehension questions for debugging real bugs from different open source projects. Our study shows that the approach is promising for searching through large execution histories.


Dissertation Committee:

  • Prof. Matthias Hauswirth, Università della Svizzera italiana, Switzerland (Research Advisor)
  • Prof. Walter Binder, Università della Svizzera italiana, Switzerland (Internal Member)
  • Prof. Mauro Pezzè, Università della Svizzera italiana, Switzerland (Internal Member)
  • Prof. Eric Tanter, University of Chile, Chile (External Member)
  • Prof. Thomas Gross, ETH Zurich, Switzerland (External Member)