Debugging Support for Static Analysis Library WALA
Podpora ladění ve knihovně WALA pro statickou analýzu
diplomová práce (OBHÁJENO)
![Náhled dokumentu](/bitstream/handle/20.500.11956/127799/thumbnail.png?sequence=8&isAllowed=y)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/127799Identifikátory
SIS: 141614
Kolekce
- Kvalifikační práce [10926]
Autor
Vedoucí práce
Oponent práce
Kofroň, Jan
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Softwarové systémy
Katedra / ústav / klinika
Katedra distribuovaných a spolehlivých systémů
Datum obhajoby
29. 6. 2021
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Velmi dobře
Klíčová slova (česky)
statická analýza|ladění|funkce přechodu|T. J. Watson Libraries for Analysis|WALA|Debug Adapter Protocol|rozšíření VS CodeKlíčová slova (anglicky)
static analysis|debugging|transfer functions|T. J. Watson Libraries for Analysis|WALA|Debug Adapter Protocol|VS Code extensionV dnešní době je statická analýza užitečným nástrojem pro vývojáře, který zajistí kontrolu všech důležitých vlastností vyvinuté aplikace. Avšak i statické analýzy musí být vyvíjeny, což nevyhnutelně vede k potřebě je ladit za účelem nalezení a opravy problémů uvnitř analýzy. Ladění statické analýzy může být komplikovanější z důvodu absence dostatečné podpory pro ladění, kterou trpí i populární knihovny pro statickou analýzu. Jednou ze široce používaných knihoven pro statickou analýzu je WALA. V této práci jsme důkladně prozkoumali všechny hlavní nástroje z knihovny WALA a určili možnosti zlepšení podpory ladění. Pro všechny tyto možnosti jsme navrhli a implementovali pod- půrnou infrastrukturu, která by měla urychlit proces ladění tím, že odstraní nutnost zdlouhavé manuální práce potřebné pro kontrolu a vyhodnocení interních stavů knihovny WALA. Jedním typem vylepšení je ladění konfigurace analýzy, kde jsme vytvořili systém pro kontrolu hierarchie tříd a grafu volání, který by měl detekovat běžné problémy s ne- správnou konfigurací. Dalším bodem je ladění funkcí přechodu datových toků, pro který jsme vytvořili vizualizér probíhající analýzy nad cílovým programem. Tato vizualizace se provádí v editoru Visual Studio Code. Pro připojení editoru k analýze jsme využili Debug Adapter Protokolu a knihoven pro...
Nowadays, static analysis is a helpful option for developers to ensure all the important properties of a developed application. But these analyses must be also developed and it is inevitable that sometimes they must be debugged to find and solve problems inside of the analyses themself. The debugging of static analyses might be more complicated because some popular analysis frameworks do not provide sufficient support for debugging. One of the widely used analysis frameworks is WALA. In this thesis, we thoroughly explored all the main features of WALA and determined possible points for better debugging support. For each of these points, we designed and implemented supporting infrastructure that should accelerate the process of debugging by avoiding the tedious manual effort needed for inspection and evaluation of the internal state of WALA. One kind of these points is the analysis configuration where we created an inspection system for class hierarchy and call graph that should detect common misconfiguration problems. The next point is the debugging of the data flow transfer functions, for which we created a visualizer of the running analysis over the subject program. This visualization is done within the Visual Studio Code editor. To connect the editor with the analysis we used Debug Adapter Protocol and...