WebAssembly paměťový debugger
WebAssembly Memory Debugger
Type of document
bakalářská prácebachelor thesis
Author
Jakub Mareš
Supervisor
Matoušek Jan
Opponent
Vagner Ladislav
Field of study
Softwarové inženýrství 2021Study program
InformatikaInstitutions assigning rank
katedra softwarového inženýrstvíRights
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Show full item recordAbstract
Možnost kompilace programů napsaných v programovacích jazycích s manuální režií paměti do WebAssembly vytvořilo potřebu existence WebAssembly paměťového dubuggeru s vlastnostmi podobnými nástroji Valgrind Memcheck. Výsledkem této práce je Wasm Doctor, WebAssembly paměťový debugger inspirovaný nástrojem Valgrind Memcheck. Důraz je především kladen na detekci chyb způsobených nedefinovanými hodnotami a špatnou prací s dynamickou alokací paměti. Detekce chyb souvisejících s pamětí funguje nejlépe pro programy napsané v jazyce C a kompilované překladačem Clang, protože použitý kompilátor ovlivňuje struktury uvnitř spustitelného souboru, které Wasm Doctor používá pro detekci chyb. Aplikací tohoto paměťového debuggeru je výukový nástroj Trainer, který se používá při cvičeních Programování a algoritmizace 1 a 2 na FIT ČVUT. Paměťový debugger používá shadow memory pro detekci chyb způsobených nedefinovanou pamětí. Namísto instrumentace, kterou používá Valgrind, používá Wasm Doctor existující interpret --- Toywasm. Tato práce též popisuje unikátní problémy, které souvisí s analýzou spustitelných souborů ve WebAssembly. The ability to compile programs written in manually managed languages such as C and C++ to WebAssembly has introduced the need for a WebAssembly memory debugger similar to Valgrind's Memcheck. The result of this thesis is Wasm Doctor, a WebAssembly memory debugger inspired by Valgrind's Memcheck. It focuses on the detection of undefined value bugs and the detection of dynamic memory allocation bugs. The detection of memory bugs works best for C programs compiled by Clang, as the compiler choice affects some structures inside the executable, that Wasm Doctor uses for the detection of bugs. Immediate application of this memory debugger is in the Trainer education tool used during Programming and Algorithmics 1 and 2 courses at FIT CTU. The memory debugger utilizes shadow memory for undefined value bug detection. Instead of instrumentation, as is the case for Valgrind, Wasm Doctor uses an existing interpreter --- Toywasm. This thesis also outlines the unique problems associated with the analysis of WebAssembly executables.
Collections
- Bakalářské práce - 18102 [1724]