Laborationer
Laborationerna är obligatoriska. De äger rum i grupper i läsveckorna 2 - 7 i läsperiod HT2. Man ska samarbeta två och två.
Anmälan och gruppindelning görs i SAM.
En kort introduktion till kommandorads-miljön i datorsalarna finns på sidan Om kommandoraden. (Notera att Windows Subsystem for Linux (WSL) introducerades i Windows 10, för äldre Windows-system är Cygwin ett alternativ.)
- En introduktion til lldb finns på https://lldb.llvm.org/use/tutorial.html och en översättningstabell av kommandon mellan lldb och gdb finns på https://lldb.llvm.org/use/map.html
- Manualen till gdb finns som pdf och webbsida.
Uppgifter
Schema för laborationsuppgifterna:
Laboration 1, Introduktion till verktygen, grundläggande C++: Läsvecka 2
Laboration 2, Introduktion till standardbiblioteket: Läsvecka 3--4
Laboration 3, Debugging: Läsvecka 5
Laboration 4, Strängar och strömmar; felhantering; generisk programmering: Läsvecka 6--7
Notera att det är två labtillfällen för lab 2 och 4.
Labbhandledningen finns i cpplabs.pdf
Noter
Lab 1
På vissa system (bland annat Mac med arm-processor) fungerar den "strömlinjeformade" leak sanitizer (-fsanitize=leak
) inte.
leak sanitizer ingår även som en del i den större address sanitizer (-fsanitize=address
). Om -fsanitize=leak inte fungerar kan du testa att bygga med -fsanitize=address.
Sen kan du behöva sätta miljövariablen ASAN_OPTIONS='detect_leaks=1'
för att aktivera leak sanitizer.
Till exempel, för att köra programmet leak (byggt med -fsanitize=address
) med kontroll för minnesläckor aktiverad ge kommandot:
ASAN_OPTIONS='detect_leaks=1' ./leak
och omvänt kan du stänga av leak sanitizer (men behålla resten av address sanitizers kontroller) med
ASAN_OPTIONS='detect_leaks=0' ./leak
Se dokumentationen för mer detaljer. Google Sanitizers finns på https://github.com/google/sanitizers.
Lab2
Om /usr/share/dict/words
inte finns på ditt system kan du använda denna filen: dict-words.txt
Alternativt kan du installera ordlistan. I Ubuntu finns ordlistan i paketet wbritish respektive or wamerican. Kommandot
sudo apt-get install wbritish
(or wamerican)
installerar en ordlista under /usr/share/dict/words