Vyhledávání výrazů s nedefinovaným chováním v jazyce C

Loading...
Thumbnail Image

Date

Authors

Hellebrandt, Lukáš

Mark

C

Journal Title

Journal ISSN

Volume Title

Publisher

Vysoké učení technické v Brně. Fakulta informačních technologií

ORCID

Abstract

Práce se zabývá detekcí nedefinovaného chování v programech v jazyce C. Zaměřujemese na nedefinované chování vznikající nesprávnou prací se sekvenčními body a vedlejšími efekty. Provedeme teoretický rozbor a pojmy jako nedefinované chování nebo vedlejší efekt zasadíme do kontextu práce. Dále vysvětlíme nebezpečnost konstrukcí vedoucích k nedefinovanému chování. Navrhneme metodu pro automatickou detekci zmíněného druhu nedefinovaného chování. Nakonec navrhneme a implementujeme nástroj pro jeho automatizovanou statickou detekci a popíšeme principy funkce tohoto nástroje. Při jeho návrhu klademe, narozdíl od současných řešení, důraz na funkčnost i v případě přístupu k paměti přes ukazatel nebo z volané funkce. Práce obsahuje příklady nebezpečných konstrukcí, na některých z nich jsou demonstrovány funkce vytvořeného nástroje.
This thesis engages in detection of undefined behavior in the C language programs. We focus on undefined behavior stemming from incorrect work with sequence points and side effects. We perform a theoretical analysis and put terms like undefined behavior or side effect in context of the paper. Furthermore, we explain dangerousness of the constructs leading to undefined behavior. We propose a method for automated detection of the mentioned kind of undefined behavior. Finally, we design and implement a tool for its automated static detection and show the principles of the tool’s function. While designing the tool, contrary to current solutions, we stress functionality even in cases like accessing the memory via a pointer or from a called function. The thesis contains examples of dangerous constructs, functions of the created tool are demonstrated on some of them.

Description

Citation

HELLEBRANDT, L. Vyhledávání výrazů s nedefinovaným chováním v jazyce C [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2014.

Document type

Document version

Date of access to the full text

Language of document

en

Study field

Informační technologie

Comittee

doc. Dr. Ing. Petr Hanáček (předseda) prof. Ing. Tomáš Vojnar, Ph.D. (místopředseda) doc. Ing. Vítězslav Beran, Ph.D. (člen) Ing. Karel Masařík, Ph.D. (člen) Ing. Josef Strnadel, Ph.D. (člen)

Date of acceptance

2014-06-19

Defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm C. Otázky u obhajoby: Můžete blíže vysvětlit způsob překladu výsledků "alias" analýzy z LLVM IR na zdrojový kód na příkladu výpisů uvedených na obrázcích 4.7 až 4.9? Charakterizujte blíže programy, na nichž jste váš analyzátor testoval, a vysvětlete údaje uvedené na obr. 5.3.

Result of defence

práce byla úspěšně obhájena

DOI

Collections

Endorsement

Review

Supplemented By

Referenced By

Citace PRO