Thesis (Selection of subject)Thesis (Selection of subject)(version: 368)
Thesis details
   Login via CAS
Automated Program Minimization With Preserving of Runtime Errors
Thesis title in Czech: Automatická konstrukce minimálních programů která zachovává běhové chyby
Thesis title in English: Automated Program Minimization With Preserving of Runtime Errors
Key words: automatické ladění|analýza kódu|syntaktický strom|redukce příkazů|clang libtooling
English key words: automated debugging|code analysis|syntax tree|statement reduction|clang libtooling
Academic year of topic announcement: 2020/2021
Thesis type: Bachelor's thesis
Thesis language: angličtina
Department: Department of Distributed and Dependable Systems (32-KDSS)
Supervisor: doc. RNDr. Pavel Parízek, Ph.D.
Author: hidden - assigned and confirmed by the Study Dept.
Date of registration: 07.09.2020
Date of assignment: 15.09.2020
Confirmed by Study dept. on: 22.09.2020
Date and time of defence: 02.07.2021 09:00
Date of electronic submission:27.05.2021
Date of submission of printed version:27.05.2021
Date of proceeded defence: 02.07.2021
Opponents: RNDr. David Bednárek, Ph.D.
 
 
 
Guidelines
Debugging of large programs is a very time-consuming and difficult task. For each reported bug, the developer must reproduce it, find the root cause, and create a proper bugfix. Here we focus on the search for a root cause.
The goal of this project is to develop a tool that, given the source code of an input program P and an observed runtime error E, fully automatically generates a minimum program P' that is a syntactically correct slice of P and still triggers the error E.
Using the program P', which should be much simpler than the original input P, the developer will be able to identify the root cause of a bug in the code much faster.
Primary target domain for the tool includes programs written in C and C++ that have a short running time (i.e., excluding servers).
The tool should support basic types of runtime errors, such as unhandled exceptions and violated assertions.
Implementation of the tool will use the LLVM compiler infrastructure.
A part of this project will also be the experimental comparison of different approaches to construction of the minimal program that contains the error, in particular the naive brute-force approach and one based on delta debugging.
References
1. Clang frontend for LLVM. https://clang.llvm.org/
2. Introduction to Clang AST. https://clang.llvm.org/docs/IntroductionToTheClangAST.html
3. Andreas Zeller. Automated Debugging: Are We Close. Computer 34(11), 2001
 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html