Název:
Dynamická analýza pro hledání chyb endianity
Překlad názvu:
Dynamic Analysis for Finding Endianity Bugs
Autoři:
Kápl, Roman ; Parízek, Pavel (vedoucí práce) ; Yaghob, Jakub (oponent) Typ dokumentu: Diplomové práce
Rok:
2018
Jazyk:
eng
Abstrakt: [eng][cze] When two computer systems communicate, for example over a network, they must agree on the ordering of bytes within numbers. This ordering is called endianess. Often one of the systems has to swap the order of bytes to the agreed standard. Results of this work help programmers to find places in their program where they forgot to swap the bytes. We have developed a dynamic data-flow analysis built upon the popular Valgrind tool. Compared to the static analysis currently used by the Linux kernel developers, our approach does not require annotation of variables with their endianess. Typically only few places in the program source code will need to be annotated. The analysis can also detect potential bugs that would only manifest if the program was run on computer with opposite endianess. Our approach has been validated on an existing program known to contain yet unfixed endianess problems (RadeonSI OpenGL driver). It has identified all endianess-related bugs and provided useful diagnostic messages together with their location.Když spolu komunikují dva počítačové systémy, například přes síť, musí se shodnout na pořádí bytů v číslech. Tomuto pořadí se říká endianita. Často pak musí jeden ze systémů prohodit pořadí bytů na předem dohodnutý standard. Výsledky této práce pomohou programátorům najít místa v jejich programech, kde na toto přehození pořadí zapomněli. Vyvinuli jsme dynamickou data-flow analýzu postavenou na populárním nástroji Valgrind. V porovnání se statcikou analýzou v současnosti používanou vývojáři Linuxového jádra náš přístup nevyžaduje označení proměnných jejich endianitou. Typicky je nutné označit jen několik míst ve zdrojovém kódu. Analýza je také schopná detekovat potenciální chyby, které by se projevily pouze pokud by program byl spuštěn na počítačích s opačnou endianitou. Náš přístup jsme ověřili na existujicím programu, o kterém se vědělo, že obsahuje zatím neopravné chyby související s endianitou (RadeonSI OpenGL driver). Identifikoval všechny chyby související s endianitou a poskytl užitečné diagnostické zprávy s označením původu chyby.
Klíčová slova:
data-flow analýza; dynamická analýza; endianita; Valgrind; data-flow analysis; dynamic analysis; endianess; Valgrind