Treffer: Extrakce grafu toku řízení z bajtkódu Java ; Extraction of Control Flow Graph from Java Bytecode

Title:
Extrakce grafu toku řízení z bajtkódu Java ; Extraction of Control Flow Graph from Java Bytecode
Contributors:
Smrčka, Aleš, Kočí, Radek
Publisher Information:
Vysoké učení technické v Brně. Fakulta informačních technologií
Publication Year:
2017
Collection:
Brno University of Technology (VUT): Digital Library / Vysoké učení technické v Brně: Digitální knihovně
Document Type:
Dissertation bachelor thesis
File Description:
application/pdf; text/html
Language:
Czech
Relation:
SEČKAŘOVÁ, P. Extrakce grafu toku řízení z bajtkódu Java [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2017.; 106188; http://hdl.handle.net/11012/69661
Rights:
Standardní licenční smlouva - přístup k plnému textu bez omezení
Accession Number:
edsbas.77524175
Database:
BASE

Weitere Informationen

Grafy toku řízení (Control Flow Graph -- CFG) slouží jako základ pro mnoho analýz vyhodnocujících kvalitu programu. Takovou analýzou je i testování založené na modelech (model-based testing), které na základě analýzy modelu kódu, např. grafu, generuje testovací případy. Aby bylo možné tuto analýzu provádět co nejobecněji, je vhodné, aby instrukce obsažené v CFG patřily do některé z obecných instrukčních sad.Tato práce se zabývá extrakcí grafů toku řízení z bajtkódu jazyka Java a následným překladem jednotlivých instrukcí bajtkódu uvnitř základních bloků do instrukční sady LLVM IR. Výsledný program dokáže spolehlivě získat grafy toku řízení z programů v jazyce Java zadaných v jakékoli z nejběžnějších forem pro šíření tohoto typu software (.jar archiv, .java nebo .class soubory). Grafy na výstupu jsou navíc koncipovány tak, aby nad nimi bylo možné provádět analýzu za účelem generování jednotkových testů. ; The most of the analyses evaluating the quality of code are derived from Control Flow Graphs -- CFG. Model-based testing as one of them uses paths found in CFG for generation of test cases. To ease use of a general analysis of CFG, there is a need for CFG to contain instructions of some general instruction set. This work deals with extraction of control flow graphs from Java bytecode, followed by a translation of the instructions inside basic blocks into LLVM IR set. The resulting program is able to reliably extract control flow graphs from a Java program, given in any of its casual forms (.jar archive, .java or .class file). In addition to that, the graphs on output are assembled so, that they can be analyzed in order to generate unit tests. ; A