FAQ
Häufig gestellte Fragen
Prüfung
Genaue Infos hierzu finden Sie auf der Seite "Prüfungsinformationen".Übung
Anmeldung für die Tafelübung?
Die Anmeldung für die Tafelübungen findet in einer den ersten Wochen der Vorlesungszeit im Windhundverfahren statt: waffel.Bedeutung der Miniklausur?
Die Miniklausur entspricht einer "normalen" Übungsaufgabe mit maximal 15 Punkten. Berechnungsformel für die entsprechende Übungspunktezahl:Mein Programm tut nicht was es soll!
Oft sind Warnungen des Übersetzers ein Hinweis auf Fehler im Programmcode. Daher ist es zielführend, die Warnungen des Übersetzers nicht zu ignorieren. Manchmal hilft es aber auch zusätzliche Warnungen des Übersetzers zu aktivieren.
-Wextra
: Einige zusätzliche Warnungen.-Wshadow
: Warnung, falls eine lokale Variable eine Variable eines äußeren Blocks verdeckt.-Wformat=2
: Zusätzliche Überprüfungen von Formatstrings-Wlogical-op
: Warnung bei potentiellem Vertauschen von logischen und bitweisen Operationen- ...und noch mehr
clang-format [--dry-run] -i myprogram.c
: Editiert die Datei und formatiert den Code entsprechend eines einheitlichen Stils. Wenn Sie Probleme haben, ihren Code übersichtlich zu halten (Einrückung etc.) kann dies die Übersichtlichkeit erhöhen und die Fehlersuche beschleunigen.indent --linux-style source.c another_source.c
erfüllt den selben Zweck, editiert jedoch nur Einrückung & Klammerpositionen.clang-tidy myprogram.c
findet Muster im Code die häufig in Programmfehlern resultieren. Einige Warnungen sind für die Entwicklung von POSIX-Konformen Programmen nicht hilfreich, verwenden Sie diese .clang-tidy Konfigurationsdatei um sie zu deaktivieren.valgrind --leak-check=full --show-leak-kinds=all ./mybinary
: Prüft auf ungültige Speicherzugriffe und erkennt/lokalisiert Speicherleaks.valgrind --tool=helgrind ./mybinary
kann Synchronisationsprobleme finden. Achten Sie aber darauf, dass es hierbei zu false-positives kommen kann.- Durch das Compilieren mit
-D_FORTIFY_SOURCE=1
in denCFLAGS
werden Pufferüberläufe in Bibliotheksfunktionen teilweise erkannt. - Mit dem clang ThreadSanitizer können Wettlaufsituationen gefunden werden. Kompilieren und linken Sie hierzu Ihr Programm mit
CC=clang
undEXTRA_CFLAGS=-fsanitize=thread -g -O1
und führen Sie es aus. - Der clang AddressSanitizer kann ähnlich zu
valgrind
Speicherfehler finden. Kompilieren und binden Sie dazu Ihr Programm mitCC=clang
,LD=clang
, undEXTRA_CFLAGS=-fsanitize=undefined,leak,address,nonnull-attribute -fno-omit-frame-pointer -g -O1
und führen Sie es aus. - Compiler Explorer (godbolt.org) erlaubt es einem einfach zu sehen, zu welchem Maschinencode C Programme kompiliert werden und wie sich C in bestimmten Situationen genau verhält.
GDB
: Der Debugger 😉