Témata prací (Výběr práce)Témata prací (Výběr práce)(verze: 368)
Detail práce
   Přihlásit přes CAS
Debugging Support for Static Analysis Library WALA
Název práce v češtině: Podpora ladění ve knihovně WALA pro statickou analýzu
Název v anglickém jazyce: Debugging Support for Static Analysis Library WALA
Klíčová slova: statická analýza|ladění|funkce přechodu|T. J. Watson Libraries for Analysis|WALA|Debug Adapter Protocol|rozšíření VS Code
Klíčová slova anglicky: static analysis|debugging|transfer functions|T. J. Watson Libraries for Analysis|WALA|Debug Adapter Protocol|VS Code extension
Akademický rok vypsání: 2019/2020
Typ práce: diplomová práce
Jazyk práce: angličtina
Ústav: Katedra distribuovaných a spolehlivých systémů (32-KDSS)
Vedoucí / školitel: doc. RNDr. Pavel Parízek, Ph.D.
Řešitel: Mgr. Filip Havel - zadáno a potvrzeno stud. odd.
Datum přihlášení: 08.04.2020
Datum zadání: 21.05.2020
Datum potvrzení stud. oddělením: 02.06.2020
Datum a čas obhajoby: 29.06.2021 09:00
Datum odevzdání elektronické podoby:21.05.2021
Datum odevzdání tištěné podoby:21.05.2021
Datum proběhlé obhajoby: 29.06.2021
Oponenti: doc. RNDr. Jan Kofroň, Ph.D.
 
 
 
Zásady pro vypracování
Implementing static analyses using libraries such as WALA is difficult because there is very little debugging support. Developers typically use logging of plain text messages at many places in their implementation of a client static analysis. A log message contains, for example, (1) the source code location corresponding to the current node in a control-flow graph and (2) a complete snapshot of the current data-flow information associated with the node. Messages are typically written into a log file that can be analyzed offline. However, log files generated in this way can be too large for manual inspection by a developer who needs to find the root cause of some error. Another problem for developers is the need to write a large amount of adhoc source code for printing log messages.

The goal of this project is to design and implement practically useful debugging support for (1) the static analysis library WALA and (2) client static analyses built using the library. An important part of the solution would be an API for monitoring the run of static analysis and notifying registered listeners about specific events on demand. Relevant events could be, for example, application of the transfer function defined for a specific bytecode instruction and update of the data-flow information for a particular node in the control-flow graph. The proposed monitoring and debugging API should allow developers to inspect the data flow values associated with nodes in the control-flow graph at specific points during the analysis computation. The implemented tool will support especially the basic data flow analyses (solver), but also some of the following common static analyses: class hierarchy construction, call graph building, pointer analysis, and the SSA IR builder. In addition, the tool should provide support for highly configurable and flexible user-defined filtering of recorded information.
Seznam odborné literatury
1. WALA: T.J. Watson Libraries for Analysis. http://wala.sourceforge.net/wiki/index.php/Main_Page
2. Eclipse Plugin for the Soot Java Optimization Framework. https://github.com/Sable/soot/wiki/Running-Soot-as-Eclipse-Plugin
3. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
 
Univerzita Karlova | Informační systém UK