Detail produktu
ANaConDA: A Framework for Analysing Multi-threaded C/C++ Programs on the Binary Level, Version 0.4
Vznik: 2020
Vašíček Ondřej, Ing. (UITS)
Mužikovská Monika, Ing.
Smrčka Aleš, Ing., Ph.D. (UITS)
Vojnar Tomáš, prof. Ing., Ph.D. (UITS)
Křena Bohuslav, Ing., Ph.D. (UITS)
Concurrent programs, multithreaded programs, synchronisation, data races, deadlocks, atomicity, contracts for concurrency, dynamic analysis, noise injection.
ANaConDA je prostředí pro dynamickou analýzu vícevláknových programů psaných v jazycích C/C++. Analýza probíhá na binární úrovni s využitím instrumentace pomocí nástroje Intel Pin. Při vlastní analýze ANaConDA využívá detektory zaměřené na různé defekty v synchronizaci a šanci na nalezení vzácně se vyskytujících chyb zvyšuje pomocí vkládání šumu do plánování paralelně běžících vláken. Ve verzi 0.4 byla ANaConDA doplněna o nové extrapolující detektory chyb, zahrnující např. implementaci detektoru časově závislých chyb nad daty nazvaného FastTrack, jenž byl v literatuře původně navržen pro prostředí jazyka Java. Byla rovněž zdokonalena podpora tzv. kontraktů pro paralelismus, umožňující sledovat relativní atomičnost sekvencí volání některých funkcí, a to o práci s parametry funkcí. Byla také provedena řada optimalizací umožňujících nástroji zvládnout analýzu průmyslového kódu např. v podobě komunikačního prostředí DDS.
Volně šiřitelný software poskytovaný pod licencí GNU GPL (přesné znění licence je dostupné na stránce http://www.gnu.org/licenses/gpl.html).