TY - THES TI - Vyhledávání výrazů s nedefinovaným chováním v jazyce C TT - Detection of Expressions with Undefined Behavior in C Language AU - Hellebrandt, Lukáš AB - 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. AB - 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. UR - http://hdl.handle.net/11012/56542 UR - http://www.nusl.cz/ntk/nusl-239692 A2 - Vojnar, Tomáš A2 - Müller, Petr LA - eng KW - LLVM KW - C language KW - jazyk C KW - undefined behavior KW - vedlejší efekt KW - statická analýza KW - Clang KW - static analysis KW - nedefinované chování KW - side effect KW - sequence point KW - sekvenční bod PY - 2014 PB - Vysoké učení technické v Brně‎, Antonínská 548/1, 601 90 Brno, http://www.vutbr.cz/ ER -