Zum Inhalt springen

Häufige Probleme beim Setup

Terminal und VS Code

„make“ oder „check50“ wird nicht gefunden

makeBefehl, der den Compiler mit den richtigen Einstellungen aufruft: make hello erzeugt aus hello.c das Programm hello. Glossar →, check50Prüfprogramm von CS50: Es testet Ihr Programm mit vorgegebenen Eingaben und zeigt mit fröhlichen und traurigen Gesichtern, welche Tests es besteht. Glossar →, style50Prüfprogramm von CS50, das zeigt, wo Ihr Code von den Formatierungsregeln abweicht. In Grün zeigt es, was Sie ergänzen sollten, in Rot, was wegfallen soll. Glossar →, debug50 und infDas Abgabewerkzeug des Kurses: inf upload me im Terminal lädt Ihre Lösung hoch, lässt die Tests laufen und zeigt, ob die Übung ihren Stern hat, also für die Joker-Regel zählt. Glossar → gibt es nur in der Kursumgebung. Sie laufen im TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar → von VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar →, wenn VS Code mit dem CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar → oder dem Dev ContainerEin Container, mit dem sich VS Code verbindet. Sie bedienen VS Code wie gewohnt, aber die Befehle im Terminal laufen im Container. Glossar → verbunden ist, nicht in PowerShell, in der Eingabeaufforderung von Windows, im Ubuntu-Fenster von WSLDas „Windows-Subsystem für Linux“, eine Funktion von Windows, mit der ein Linux im Hintergrund läuft. Docker braucht sie unter Windows. Glossar → oder im Terminal des Macs. Typische Meldungen aus dem falschen Terminal sind „‘make’ is not recognized as an internal or external command“ (Windows) und „zsh: command not found: check50“ (Mac).

Beim Dev Container steht „[Dev Container]“ im Fenstertitel und links im Explorer. Ein Terminal öffnen Sie in VS Code über das Menü „Terminal“ → „New Terminal“.

„inf: command not found“

infDas Abgabewerkzeug des Kurses: inf upload me im Terminal lädt Ihre Lösung hoch, lässt die Tests laufen und zeigt, ob die Übung ihren Stern hat, also für die Joker-Regel zählt. Glossar → kommt mit der Einrichtung des Containers für den Kurs. Prüfen Sie der Reihe nach:

  1. Läuft das TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar → in der Kursumgebung? Im Dev ContainerEin Container, mit dem sich VS Code verbindet. Sie bedienen VS Code wie gewohnt, aber die Befehle im Terminal laufen im Container. Glossar → steht „[Dev Container]“ im Fenstertitel, sonst verbinden Sie sich zuerst.
  2. Im CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar →: Haben Sie die Zeile aus Schritt 4 der Anleitung ausgeführt? Im Dev Container: Stand nach dem ersten Start „Container eingerichtet.“ im Terminal? Das dauert einige Minuten.
  3. Schließen Sie das Terminal mit dem Papierkorb-Symbol und öffnen Sie ein neues. Erst ein neues Terminal kennt inf.

Fehlt inf dann immer noch, fügen Sie im Terminal diese Zeile ein und drücken Sie Enter:

Nie wahllos Skripte aus dem Internet laden und ausführen. Eine Zeile wie diese lädt ein Programm aus dem Internet und reicht es sofort zum Ausführen weiter (| bash, | iex), mit allen Rechten Ihres Benutzerkontos und ohne dass Sie es vorher sehen. Wer Ihnen so eine Zeile unterschiebt, kann damit Ihre Dateien löschen, Passwörter mitlesen oder Schadsoftware einrichten. Führen Sie sie deshalb nur aus, wenn Sie der Quelle vertrauen, und genau so, wie sie dort steht: von dieser Seite (Adressen auf inf.zone) oder von der offiziellen Seite des Programms. Zeilen aus Foren, Chats, E-Mails, Videos oder von einer KI führen Sie nie ungeprüft aus.

curl -fsSL https://inf.zone/setup-container.sh | bash

Bricht sie ab, sagt die Zeile, die mit setup-container: beginnt, warum.

Die Tastenkürzel aus der Anleitung funktionieren auf dem Mac nicht

Die Anleitungen nennen meist die Tasten unter Windows. Auf dem Mac nehmen Sie Cmd statt Strg: Befehlspalette Cmd + Shift + P, Erweiterungen Cmd + Shift + X, Speichern Cmd + S. Im TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar → bricht Ctrl + C ein laufendes Programm ab, auch auf dem Mac.

help50 oder die CS50 Duck: „No CS50_TOKEN or GITHUB_TOKEN was found“

help50 lässt die Fehlermeldung vom CS50 Duck erklären, und der fragt dafür cs50.ai. Anmelden kann er sich dort nur mit einem Schlüssel, den es nur im CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar → gibt (CS50_TOKEN von der Anmeldung auf cs50.dev oder GITHUB_TOKEN von GitHub Codespaces). Im Dev ContainerEin Container, mit dem sich VS Code verbindet. Sie bedienen VS Code wie gewohnt, aber die Befehle im Terminal laufen im Container. Glossar → fehlen beide: Dort kommt immer diese Meldung, und weder help50 noch der Duck helfen. Einrichten lässt sich das nicht.

Im Codespace hilft es meist, sich auf cs50.dev neu anzumelden und den Codespace ganz zu stoppen und neu zu starten. Sonst lesen Sie die Meldung des CompilersProgramm, das Quellcode in Maschinencode übersetzt; diesen Vorgang nennt man kompilieren. Jedes C-Programm muss kompiliert werden, bevor es laufen kann. Glossar → selbst, von der ersten Zeile an: hello.c:5:12: error: … nennt Datei, Zeile und Spalte. Hilft das nicht, fragen Sie Susi (Knopf unten rechts) oder bringen Sie die Meldung wörtlich ins Tutorium mit.

GitHub Copilot fehlt, oder VS Code macht beim Tippen keine Vorschläge

Das ist so gewollt. Die Kursumgebung entfernt Copilot und ähnliche ErweiterungenZusatzmodul, das VS Code um Funktionen ergänzt, etwa „Dev Containers“ oder „GitHub Codespaces“. Sie installieren es im Extensions-Panel (Strg+Shift+X). Glossar →, schaltet die KI-Funktionen von VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar → ab und zeigt beim Tippen keine Vorschläge. Sie müssen dafür nichts installieren oder ausschalten.

Das gilt im CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar → und im Dev ContainerEin Container, mit dem sich VS Code verbindet. Sie bedienen VS Code wie gewohnt, aber die Befehle im Terminal laufen im Container. Glossar →. Öffnen Sie VS Code ohne die Kursumgebung, gelten Ihre eigenen Einstellungen. Fragen zum Stoff und zu Fehlermeldungen beantwortet Susi (Knopf unten rechts).

Einfügen im Terminal klappt nicht

In der Kursumgebung gibt VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar → Tastenkürzel im TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar → an das Programm darin weiter, damit Kürzel wie Strg + C dort ankommen. Unter Windows und Linux fügt Strg + V im Terminal deshalb nichts ein.

  • Einfügen: Klicken Sie mit der rechten Maustaste ins Terminal. Unter Windows fügt das sofort ein, sonst wählen Sie im Menü „Einfügen“ („Paste“). Auf dem Mac geht Cmd + V wie gewohnt.
  • Kopieren: Text mit der Maus markieren, dann Rechtsklick (unter Windows kopiert schon das) oder „Kopieren“ („Copy“) im Menü. Strg + C bricht im Terminal das laufende Programm ab.

Im Editor gehen Strg + C und Strg + V wie gewohnt. Code gehört ohnehin dorthin, ins Terminal nur Befehle.

„Starting directory (cwd) … does not exist“

Das TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar → soll in einem Ordner starten, den es nicht gibt. Meist ist das Fenster nicht mit der Kursumgebung verbunden: Ordner unter /workspaces/… gibt es nur im ContainerAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → oder im CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar →, nicht auf Ihrem Rechner.

  1. Steht „[Dev Container]“ im Fenstertitel, oder ist der Codespace verbunden? Sonst verbinden Sie sich bzw. öffnen den Codespace neu, und öffnen dann ein neues Terminal.
  2. Haben Sie den Kursordner umbenannt oder verschoben, öffnen Sie ihn neu über „Datei“ → „Ordner öffnen“ und wählen „Reopen in Container“.

Windows-Skript

„Dieses Skript unterstützt nur Windows 11“

Das Skript läuft nur unter Windows 11 und hat nichts verändert. Nutzen Sie die Online-Variante: GitHub Codespaces. Damit arbeiten Sie im Browser genauso wie im Dev ContainerEin Container, mit dem sich VS Code verbindet. Sie bedienen VS Code wie gewohnt, aber die Befehle im Terminal laufen im Container. Glossar →.

Windows blockiert die Zeile („schädliche Inhalte“)

Microsoft Defender hält die Zeile manchmal für Schadsoftware, weil sie ein Skript lädt und sofort ausführt. Bei unserer ist das ein Fehlalarm. Schalten Sie den Virenschutz trotzdem nicht aus. Speichern Sie das Skript stattdessen erst als Datei und führen Sie es dann aus, mit den zwei Zeilen im Kasten „Wenn Windows die Zeile blockiert“ in der Anleitung, Schritt 2.

„PowerShell ist auf diesem Rechner eingeschränkt“

Der Rechner wird von einer Firma oder Schule verwaltet, und PowerShell darf dort keine Skripte ausführen. Das Skript kann hier nichts einrichten. Nutzen Sie GitHub Codespaces oder fragen Sie im Tutorium.

„Auf Ihrem Rechner ist die Virtualisierung ausgeschaltet“

WSLDas „Windows-Subsystem für Linux“, eine Funktion von Windows, mit der ein Linux im Hintergrund läuft. Docker braucht sie unter Windows. Glossar → und DockerProgramm, das Container (abgeschottete Mini-Umgebungen) auf Ihrem eigenen Rechner startet und verwaltet. Unter macOS installieren Sie dafür „Docker Desktop“; unter Windows richtet unser Einrichtungsskript Docker im WSL ein. Glossar → brauchen die Virtualisierung des Prozessors. Sie lässt sich in den Firmware-Einstellungen (BIOS/UEFI) einschalten:

  1. Speichern Sie, was offen ist. Start → Einstellungen → System → Wiederherstellung, bei „Erweiterter Start“ auf „Jetzt neu starten“. Dann: Problembehandlung → Erweiterte Optionen → UEFI-Firmwareeinstellungen → Neu starten. Fehlt der Eintrag, drücken Sie beim Einschalten F2, F10, Entf oder Esc.
  2. Suchen Sie dort (meist unter „Advanced“, „CPU“ oder „Security“) „Intel Virtualization Technology“ bzw. „VT-x“, bei AMD „SVM Mode“ bzw. „AMD-V“, und stellen Sie sie auf „Enabled“. Speichern und beenden, meist mit F10.
  3. Führen Sie nach dem Start von Windows die Zeile von der Website noch einmal aus.

Das Skript nennt dabei das Modell Ihres Rechners. Finden Sie die Einstellung nicht, suchen Sie im Netz nach dem Modell und „Virtualisierung BIOS“, oder kommen Sie mit dem Laptop ins Tutorium.

Bei Fragen mit [j/n] passiert beim Drücken nichts

Das Fenster hat den Fokus verloren, etwa weil sich zwischendurch ein anderes Fenster geöffnet hat. Klicken Sie einmal oben auf die Titelleiste des PowerShell-Fensters und drücken Sie die Taste noch einmal, ohne Enter.

Nach dem Neustart geht die Einrichtung nicht weiter

Normalerweise öffnet sich das Fenster nach der Anmeldung von selbst wieder. Kommt keins, führen Sie die Zeile von der Website noch einmal aus. Was schon erledigt ist, überspringt das Skript, es geht also an der richtigen Stelle weiter.

Die Einrichtung unter Windows noch einmal durchlaufen

Führen Sie die Zeile von der Website in PowerShell noch einmal aus. Was schon erledigt ist, überspringt das Skript, es fragt nur nach dem, was noch fehlt. Ganz von vorn (WSLDas „Windows-Subsystem für Linux“, eine Funktion von Windows, mit der ein Linux im Hintergrund läuft. Docker braucht sie unter Windows. Glossar →, Ubuntu und DockerProgramm, das Container (abgeschottete Mini-Umgebungen) auf Ihrem eigenen Rechner startet und verwaltet. Unter macOS installieren Sie dafür „Docker Desktop“; unter Windows richtet unser Einrichtungsskript Docker im WSL ein. Glossar → entfernen) müssen Sie dafür nicht anfangen. Wollen Sie das trotzdem, fragen Sie zuerst im Tutorium.

„Dieses Fenster läuft unter dem Konto …, angemeldet sind Sie als …“

PowerShell wurde mit „Als Administrator ausführen“ gestartet, und zwar mit einem anderen Konto als dem, mit dem Sie angemeldet sind. Dann würde das Skript alles für das falsche Konto einrichten. Drücken Sie n, schließen Sie das Fenster, öffnen Sie PowerShell normal und fügen Sie die Zeile dort ein. Wo Rechte nötig sind, fragt Windows selbst.

Der Benutzername für Linux wird abgelehnt

LinuxEin Betriebssystem wie Windows oder macOS. Die CS50-Umgebung und die Prüfungslaptops laufen mit Linux. Glossar → erlaubt im Benutzernamen nur Kleinbuchstaben ohne ä, ö, ü, dazu Ziffern, _ und -, keine Leerzeichen. Schreiben Sie also etwa susi statt Susi. Den Vorschlag des Skripts übernehmen Sie einfach mit Enter.

Das Passwort tippen Sie zweimal, statt der Zeichen erscheinen Sternchen. Verwenden Sie nicht Ihr Windows-Passwort und speichern Sie es, etwa in einem Passwortmanager.

Das Skript warnt vor dem gewählten Ordner (OneDrive, Downloads)

Ordner, die OneDrive synchronisiert, können beim Arbeiten Dateien sperren, und den Download-Ordner räumen manche Programme auf. Drücken Sie n und wählen Sie neu: Klicken Sie auf „Neuen Ordner erstellen“, tippen Sie inf, drücken Sie Enter und klicken Sie auf „OK“. Desktop und Dokumente sind meist ebenfalls mit OneDrive verbunden.

„your 131072x1 screen size is bogus. expect trouble“

Harmlos. Die Zeile erscheint während der Einrichtung im PowerShell-Fenster des Skripts und kommt von einem Installationsprogramm von Ubuntu, das die Fenstergröße nicht lesen kann. Solange das Skript weiterläuft, ist nichts zu tun. Bricht es ab, führen Sie die Zeile von der Website noch einmal aus.

WSL oder Docker lässt sich nicht installieren oder startet nicht

Das Skript sagt in gelben Zeilen, was zu tun ist. Meist hilft eins davon:

  1. Internetverbindung prüfen (das Skript meldet sonst „Keine Verbindung zum Internet“).
  2. Bei „Docker ist installiert, startet aber nicht“: Windows neu starten.
  3. Die Zeile von der Website noch einmal ausführen. Was schon erledigt ist, wird übersprungen.

Klappt es dann nicht, kopieren Sie die Meldung in eine Frage an Susi (Knopf unten rechts) oder bringen Sie ein Foto des Fensters ins Tutorium mit.

Das Skript fragt wegen eines ARM-Prozessors nach

Die Kursumgebung gibt es auch für ARM, auf Laptops mit Snapdragon haben wir sie aber noch nicht selbst ausprobiert. Sie können mit j hier einrichten. Klappt danach etwas nicht, etwa der DebuggerWerkzeug, mit dem Sie ein Programm Zeile für Zeile ablaufen lassen und dabei die Werte der Variablen ansehen. In CS50 setzen Sie mit einem Klick links neben eine Zeilennummer einen Haltepunkt und starten dann mit debug50 ./programm den Debugger von VS Code. Glossar →, weichen Sie auf GitHub Codespaces aus und sagen uns im Tutorium Bescheid.

Wenig freier Speicherplatz

Die Einrichtung braucht etwa 20 GB (Ubuntu mit Kursumgebung, VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar →, WSLDas „Windows-Subsystem für Linux“, eine Funktion von Windows, mit der ein Linux im Hintergrund läuft. Docker braucht sie unter Windows. Glossar →), unter macOS und Linux etwas weniger. Räumen Sie vorher auf (Windows: Start → Einstellungen → System → Speicher). Reicht der Platz nicht, nutzen Sie GitHub Codespaces: Dort liegt alles bei GitHub.

Unter Windows gibt es kein Docker Desktop

Mit unserem Skript läuft DockerProgramm, das Container (abgeschottete Mini-Umgebungen) auf Ihrem eigenen Rechner startet und verwaltet. Unter macOS installieren Sie dafür „Docker Desktop“; unter Windows richtet unser Einrichtungsskript Docker im WSL ein. Glossar → in Ubuntu unter WSLDas „Windows-Subsystem für Linux“, eine Funktion von Windows, mit der ein Linux im Hintergrund läuft. Docker braucht sie unter Windows. Glossar →, ganz ohne Docker Desktop. ContainerAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → sehen und verwalten Sie dann in VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar →: links „Remote Explorer“, Unterpunkt „Dev Containers“.

Docker Desktop gibt es nur unter macOS, unter Windows bei der Einrichtung ohne unser Skript und, wer will, unter Linux.

Dev Container

VS Code bietet „Reopen in Container“ nicht an

VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar → sucht die Datei .devcontainer.json im geöffneten Ordner. Prüfen Sie:

  1. Ist der richtige Ordner offen, Ihr Kursordner (etwa inf), nicht ein Ordner darüber oder darin?
  2. Heißt die Datei genau .devcontainer.json, mit Punkt am Anfang und .json am Ende? Browser schlagen den Namen oft ohne Punkt vor, Windows hängt manchmal .txt an (im Explorer unter „Ansicht“ die „Dateinamenerweiterungen“ einschalten). Fragt macOS beim Speichern, ob der Name wirklich mit einem Punkt beginnen soll, bestätigen Sie mit „‚.‘ verwenden“. Heißt die Datei anders, etwa nur .devcontainer, benennen Sie sie um oder speichern Sie sie noch einmal von inf.zone/devcontainer.json.
  3. Im Finder und in den meisten Dateimanagern unter Linux ist die Datei unsichtbar, weil ihr Name mit einem Punkt beginnt. Einblenden auf dem Mac mit Cmd + Shift + ., unter Linux mit Strg + H.

Ist der Hinweis unten rechts nur verschwunden: Strg + Shift + P (Mac: Cmd + Shift + P), Reopen in Container tippen und den Eintrag wählen.

„Docker version … is required“, obwohl Docker installiert ist

Klicken Sie nicht auf „Install“. VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar → findet DockerProgramm, das Container (abgeschottete Mini-Umgebungen) auf Ihrem eigenen Rechner startet und verwaltet. Unter macOS installieren Sie dafür „Docker Desktop“; unter Windows richtet unser Einrichtungsskript Docker im WSL ein. Glossar → nur noch nicht, weil es schon lief, als Docker installiert wurde.

  1. Prüfen Sie, ob Docker läuft: Oben rechts in der Menüleiste steht dann das Wal-Symbol. Fehlt es, starten Sie Docker aus dem Ordner „Programme“.
  2. Beenden Sie VS Code ganz mit Cmd + Q. Das Fenster zu schließen reicht nicht.
  3. Starten Sie VS Code wieder und wählen Sie noch einmal „Dev Containers: Open Folder in Container…“.
„permission denied while trying to connect to the Docker daemon socket“

Ihr Konto darf DockerProgramm, das Container (abgeschottete Mini-Umgebungen) auf Ihrem eigenen Rechner startet und verwaltet. Unter macOS installieren Sie dafür „Docker Desktop“; unter Windows richtet unser Einrichtungsskript Docker im WSL ein. Glossar → noch nicht ohne sudo benutzen. Fügen Sie es der Gruppe docker hinzu und melden Sie sich danach einmal ab und wieder an (oder starten Sie neu):

sudo usermod -aG docker $USER

Prüfen mit docker run hello-world: Es erscheint ein Text, der mit „Hello from Docker!“ beginnt.

„Container eingerichtet.“ erscheint nicht

Die Zeile schreibt der ContainerAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → nur, wenn er neu entsteht: beim ersten Start und nach „Rebuild Container“. Bei jedem weiteren Start läuft nur noch ein kurzer Schritt, den VS Code als „Running the postStartCommand from devcontainer.json“ meldet, und die Zeile kommt nicht wieder. Das ist richtig so.

Ob alles bereit ist, prüfen Sie im TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar →: Tippen Sie infDas Abgabewerkzeug des Kurses: inf upload me im Terminal lädt Ihre Lösung hoch, lässt die Tests laufen und zeigt, ob die Übung ihren Stern hat, also für die Joker-Regel zählt. Glossar →. Erscheint eine Liste der Befehle, ist der Container für den Kurs eingerichtet. Kommt stattdessen inf: command not found, ist die Einrichtung abgebrochen: Über der Meldung „Exit code 1“ steht dann, warum (siehe Exit code 1), sonst hilft der Eintrag „inf: command not found“.

VS Code erreicht Docker nicht (Flatpak)

Die Flatpak-Fassung von VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar → läuft abgeschottet und erreicht DockerProgramm, das Container (abgeschottete Mini-Umgebungen) auf Ihrem eigenen Rechner startet und verwaltet. Unter macOS installieren Sie dafür „Docker Desktop“; unter Windows richtet unser Einrichtungsskript Docker im WSL ein. Glossar → nicht. Installieren Sie VS Code als Paket von der Website von Visual Studio Code (.deb für Debian und Ubuntu, .rpm für Fedora und openSUSE) oder aus der Paketquelle von Microsoft.

Windows mit Docker Desktop: Der Container startet nicht („ubuntu.sock: no such file or directory“)

Ist auf Ihrem Rechner Docker Desktop installiert, nutzt VS Code dessen DockerProgramm, das Container (abgeschottete Mini-Umgebungen) auf Ihrem eigenen Rechner startet und verwaltet. Unter macOS installieren Sie dafür „Docker Desktop“; unter Windows richtet unser Einrichtungsskript Docker im WSL ein. Glossar →, auch wenn Sie mit unserem Skript eingerichtet haben. Die Meldung heißt dann meist: Docker Desktop läuft nicht, oder es ist nicht mit Ubuntu verbunden.

  1. Starten Sie Docker Desktop und warten Sie, bis es läuft.
  2. Öffnen Sie dort „Settings“ → „Resources“ → „WSL Integration“, schalten Sie „Ubuntu“ ein und klicken Sie auf „Apply“.
  3. Wählen Sie in VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar → noch einmal „Reopen in Container“.

Haben Sie Docker Desktop erst nach unserem Skript installiert, laufen auf Ihrem Rechner zwei Docker, eins in Ubuntu und Docker Desktop, und die beiden vertragen sich nicht. Entfernen Sie dann das in Ubuntu: Öffnen Sie über das Startmenü „Ubuntu“ und tippen Sie dort

sudo apt remove docker.io

Danach die Schritte oben. VS Code richtet den Container in Docker Desktop neu ein, Ihre Dateien im Kursordner bleiben. Melden Sie sich danach mit inf login wieder an. Bleibt die Meldung, suchen Sie die vollständige Fehlermeldung und kopieren Sie deren letzte Zeilen in eine Frage an Susi.

Exit code 1, bevor „Container eingerichtet.“ erscheint

Beim ersten Start richtet sich der ContainerAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → mit einem Skript für den Kurs ein (holt die Kurseinstellungen und installiert infDas Abgabewerkzeug des Kurses: inf upload me im Terminal lädt Ihre Lösung hoch, lässt die Tests laufen und zeigt, ob die Übung ihren Stern hat, also für die Joker-Regel zählt. Glossar →). Die Zeile über der Meldung, die mit setup-container: beginnt, sagt, warum es abgebrochen ist. Meist fehlte die Internetverbindung. Fügen Sie dann im TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar → des Containers diese Zeile ein und drücken Sie Enter:

Nie wahllos Skripte aus dem Internet laden und ausführen. Eine Zeile wie diese lädt ein Programm aus dem Internet und reicht es sofort zum Ausführen weiter (| bash, | iex), mit allen Rechten Ihres Benutzerkontos und ohne dass Sie es vorher sehen. Wer Ihnen so eine Zeile unterschiebt, kann damit Ihre Dateien löschen, Passwörter mitlesen oder Schadsoftware einrichten. Führen Sie sie deshalb nur aus, wenn Sie der Quelle vertrauen, und genau so, wie sie dort steht: von dieser Seite (Adressen auf inf.zone) oder von der offiziellen Seite des Programms. Zeilen aus Foren, Chats, E-Mails, Videos oder von einer KI führen Sie nie ungeprüft aus.

curl -fsSL https://inf.zone/setup-container.sh | bash

Bricht auch das ab, bringen Sie die Zeilen über der Meldung ins Tutorium mit, oder kopieren Sie sie in eine Frage an Susi.

Bricht dagegen die Einrichtung im PowerShell-Fenster des Windows-Skripts ab, meldet das Skript selbst, was zu tun ist. Danach führen Sie die Zeile von der Website noch einmal aus.

„setup-container: Kein Arbeitsordner unter /workspaces gefunden.“

Meist beginnt der Name Ihres Kursordners mit einem Punkt, etwa .inf statt inf. Ordner mit einem Punkt am Anfang sind unter LinuxEin Betriebssystem wie Windows oder macOS. Die CS50-Umgebung und die Prüfungslaptops laufen mit Linux. Glossar → versteckt: Das Einrichtungsskript findet den Ordner deshalb nicht, und auch die übrigen Werkzeuge von CS50 suchen ihn vergeblich. Einen Punkt am Anfang braucht nur die Datei .devcontainer.json, nicht der Ordner.

  1. Schließen Sie VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar →.
  2. Benennen Sie den Ordner auf Ihrem Rechner in inf um, ohne Punkt. Im Finder des Macs sehen Sie ihn erst nach Cmd + Shift + ..
  3. Öffnen Sie den Ordner in VS Code und wählen Sie „Reopen in Container“. VS Code richtet dafür einen neuen ContainerAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → ein. Warten Sie, bis im TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar → „Container eingerichtet.“ steht, und melden Sie sich mit inf login an.

Heißt der Ordner schon ohne Punkt, bringen Sie die Ausgabe von ls -a /workspaces ins Tutorium mit.

„/bin/sh: 1: wslpath: not found“

Harmlos, solange check50Prüfprogramm von CS50: Es testet Ihr Programm mit vorgegebenen Eingaben und zeigt mit fröhlichen und traurigen Gesichtern, welche Tests es besteht. Glossar → über der Zeile fröhliche Gesichter zeigt. Die Meldung erscheint im Dev ContainerEin Container, mit dem sich VS Code verbindet. Sie bedienen VS Code wie gewohnt, aber die Befehle im Terminal laufen im Container. Glossar → unter Windows, also gerade in der richtig eingerichteten Kursumgebung: Der ContainerAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → läuft dort auf dem LinuxEin Betriebssystem wie Windows oder macOS. Die CS50-Umgebung und die Prüfungslaptops laufen mit Linux. Glossar → von WSLDas „Windows-Subsystem für Linux“, eine Funktion von Windows, mit der ein Linux im Hintergrund läuft. Docker braucht sie unter Windows. Glossar →, und ein Hilfsprogramm sucht deshalb wslpath, das es im Container nicht gibt. Nichts installieren, nichts neu einrichten, nicht in ein anderes TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar → wechseln.

Stehen traurige Gesichter da, ist etwas zu tun, aber wegen des Tests, der fehlschlägt, nicht wegen dieser Zeile.

Im Remote Explorer wird kein Container angezeigt
  • Windows mit unserem Skript: In VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar → den Kursordner öffnen (Menü „Datei“ → „Ordner öffnen“) und unten rechts auf „Reopen in Container“ klicken. VS Code startet den ContainerAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → dann selbst.
  • Mit Docker Desktop (macOS, Windows ohne Skript): DockerProgramm, das Container (abgeschottete Mini-Umgebungen) auf Ihrem eigenen Rechner startet und verwaltet. Unter macOS installieren Sie dafür „Docker Desktop“; unter Windows richtet unser Einrichtungsskript Docker im WSL ein. Glossar → Desktop öffnen, unter „Containers“ den Container des Kurses mit ▶ starten, dann in VS Code im Remote Explorer verbinden.
  • Linux mit der Docker Engine: docker ps -a zeigt den Container samt Namen, docker start <Name> startet ihn.
Im Container läuft etwas grundsätzlich schief: neu erstellen

Erstellen Sie den ContainerAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → neu, statt ihn von Hand zu entfernen: Strg + Shift + P (Mac: Cmd + Shift + P), Rebuild Container tippen und „Dev Containers: Rebuild Container“ wählen. Nicht „Reopen in Container“, das verbindet nur wieder mit dem alten.

Ihre Dateien im Kursordner bleiben erhalten. Warten Sie, bis „Container eingerichtet.“ im Terminal steht, und melden Sie sich danach mit inf login wieder bei infDas Abgabewerkzeug des Kurses: inf upload me im Terminal lädt Ihre Lösung hoch, lässt die Tests laufen und zeigt, ob die Übung ihren Stern hat, also für die Joker-Regel zählt. Glossar → an.

Wollen Sie einen Container trotzdem ganz entfernen: Mit DockerProgramm, das Container (abgeschottete Mini-Umgebungen) auf Ihrem eigenen Rechner startet und verwaltet. Unter macOS installieren Sie dafür „Docker Desktop“; unter Windows richtet unser Einrichtungsskript Docker im WSL ein. Glossar → Desktop im Reiter „Containers“ beim Container des Kurses das Papierkorb-Symbol. Mit dem Windows-Skript (ohne Docker Desktop) fragen Sie vorher im Tutorium. Ihre Dateien liegen im Kursordner auf dem Rechner, nicht im Container, und bleiben auch dabei erhalten.

„Your codespace is already up-to-date!“ nach update50

Dann liegt die neue .devcontainer.json schon in Ihrem Kursordner, meist weil Sie update50 schon einmal aufgerufen haben. Der ContainerAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → läuft trotzdem in der alten Fassung, bis Sie ihn neu erstellen: Strg + Shift + P (Mac: Cmd + Shift + P), Rebuild Container tippen und „Dev Containers: Rebuild Container“ wählen.

Beim Umstellen auf die ARM-Fassung geht es danach mit Schritt 3 der Anleitung weiter. Zeigt uname -m nach dem Neuerstellen immer noch x86_64, helfen die Probleme und Lösungen dort.

Die vollständige Fehlermeldung finden („Show Log“)

Bricht das Öffnen oder Neuerstellen des ContainersAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → ab, zeigt VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar → unten rechts eine Meldung, oft nur „Command failed“. Klicken Sie darin auf „Show Log“: Dann erscheint das ganze Protokoll, und die Ursache steht meist in den letzten Zeilen vor dem Abbruch. Ist die Meldung schon weg: Strg + Shift + P (Mac: Cmd + Shift + P), Show Container Log tippen und „Dev Containers: Show Container Log“ wählen. Hat VS Code das Fenster inzwischen neu geladen, steht das Protokoll des letzten Versuchs unter „Dev Containers: Show Previous Log“.

Kopieren Sie die letzten Zeilen wörtlich in eine Frage an Susi (Knopf unten rechts), oder bringen Sie sie ins Tutorium mit.

„Port forwarding … Local close with error“ im Protokoll

Harmlos. VS Code leitet einige Ports des ContainersAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → auf Ihren Rechner weiter, damit Sie später im Kurs Webanwendungen im Browser öffnen können. Schließt sich eine dieser Verbindungen auf Ihrem Rechner, etwa weil ein Browser-Tab zugeht, schreibt VS Code diese Zeile ins Protokoll. Sie müssen nichts tun, solange infDas Abgabewerkzeug des Kurses: inf upload me im Terminal lädt Ihre Lösung hoch, lässt die Tests laufen und zeigt, ob die Übung ihren Stern hat, also für die Joker-Regel zählt. Glossar → im TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar → seine Befehle zeigt.

Dateien aus dem Codespace in den Dev Container übernehmen
  1. Laden Sie die Dateien aus dem CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar → herunter, wie unter Download von Dateien aus dem Codespace gezeigt. Sie bekommen eine ZIP-Datei.
  2. Entpacken Sie sie und kopieren Sie die Ordner der Aufgaben (etwa me und mario) in Ihren Kursordner auf dem Rechner, den Ordner mit .devcontainer.json.
  3. Im Dev ContainerEin Container, mit dem sich VS Code verbindet. Sie bedienen VS Code wie gewohnt, aber die Befehle im Terminal laufen im Container. Glossar → sind sie sofort da, denn der Container arbeitet direkt in diesem Ordner.

Ihre Abgaben müssen Sie nicht übertragen, sie liegen auf dem Abgabeserver. Melden Sie sich im Dev Container einmal mit inf login an.

Die Kursumgebung wieder entfernen

Sichern Sie vorher, was Sie behalten wollen. infDas Abgabewerkzeug des Kurses: inf upload me im Terminal lädt Ihre Lösung hoch, lässt die Tests laufen und zeigt, ob die Übung ihren Stern hat, also für die Joker-Regel zählt. Glossar → müssen Sie nicht eigens entfernen, es liegt im ContainerAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → und geht mit ihm.

  • GitHub Codespaces: Laden Sie Ihre Dateien herunter (Download von Dateien aus dem Codespace) und löschen Sie den CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar → dann unter github.com/codespaces: beim Codespace „…“ → „Delete“. Ungenutzt löscht GitHub ihn nach 30 Tagen ohnehin.
  • Docker Desktop (macOS, Windows ohne Skript): Unter „Containers“ beim Container des Kurses das Papierkorb-Symbol, danach unter „Images“ die Einträge ghcr.io/inf-zone/codespace und ghcr.io/cs50/codespace. Docker Desktop und VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar → deinstallieren Sie danach wie jedes andere Programm.
  • Linux mit der Docker Engine: docker ps -a zeigt den Container, docker rm <Name> entfernt ihn. docker image ls zeigt die Images, docker image rm <Image> entfernt eins.
  • Windows mit unserem Skript: DockerProgramm, das Container (abgeschottete Mini-Umgebungen) auf Ihrem eigenen Rechner startet und verwaltet. Unter macOS installieren Sie dafür „Docker Desktop“; unter Windows richtet unser Einrichtungsskript Docker im WSL ein. Glossar → läuft dort in Ubuntu unter WSLDas „Windows-Subsystem für Linux“, eine Funktion von Windows, mit der ein Linux im Hintergrund läuft. Docker braucht sie unter Windows. Glossar →. Wer Ubuntu entfernt, löscht alles darin, auch was Sie dort außerhalb des Kurses angelegt haben. Fragen Sie dafür zuerst im Tutorium. VS Code deinstallieren Sie wie jedes andere Programm.

Ihr Kursordner auf dem Rechner bleibt bei all dem erhalten. Löschen Sie ihn selbst, wenn Sie ihn nicht mehr brauchen.

Codespace

Lange Eingabeaufforderung, „check50“ und „style50“ fehlen (Wiederherstellungsmodus)

Gelegentlich gerät ein CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar → in den Wiederherstellungsmodus (engl. „recovery mode“), weil ein externer Dienst ausgefallen ist, beim Erstellen des ContainersAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → ein Fehler aufgetreten ist oder die Datei .devcontainer.json fehlerhaft geändert wurde. Dann funktionieren die meisten CS50-Befehle wie check50Prüfprogramm von CS50: Es testet Ihr Programm mit vorgegebenen Eingaben und zeigt mit fröhlichen und traurigen Gesichtern, welche Tests es besteht. Glossar →, style50Prüfprogramm von CS50, das zeigt, wo Ihr Code von den Formatierungsregeln abweicht. In Grün zeigt es, was Sie ergänzen sollten, in Rot, was wegfallen soll. Glossar → und debug50 nicht, und Programme mit cs50.h lassen sich nicht kompilierenProgramm, das Quellcode in Maschinencode übersetzt; diesen Vorgang nennt man kompilieren. Jedes C-Programm muss kompiliert werden, bevor es laufen kann. Glossar →. Im Dev ContainerEin Container, mit dem sich VS Code verbindet. Sie bedienen VS Code wie gewohnt, aber die Befehle im Terminal laufen im Container. Glossar → kann das nicht passieren.

Erkennen lässt es sich an der EingabeaufforderungDas Zeichen am Anfang der Zeile im Terminal, etwa $ oder me/ $. Es zeigt, dass das Terminal auf Ihren nächsten Befehl wartet. Steht davor ein Ordnername wie me/, befinden Sie sich gerade in diesem Ordner. Glossar → im TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar →. Im Wiederherstellungsmodus sieht sie so aus:

@githubBenutzername -> /workspaces/githubId (main) $

Normalerweise steht dort nur ein Dollarzeichen:

$

So beheben Sie es, Ihre Dateien gehen dabei nicht verloren:

  1. Öffnen Sie ein neues Terminal und führen Sie dort diesen Befehl aus. Er lädt die Kurseinstellungen:
    curl -fsSL https://inf.zone/devcontainer.json -o /workspaces/$RepositoryName/.devcontainer.json
  2. Stellen Sie sicher, dass die ErweiterungZusatzmodul, das VS Code um Funktionen ergänzt, etwa „Dev Containers“ oder „GitHub Codespaces“. Sie installieren es im Extensions-Panel (Strg+Shift+X). Glossar → „GitHub Codespaces“ installiert ist:
    code --install-extension GitHub.codespaces
  3. Drücken Sie Strg + Shift + P (Mac: Cmd + Shift + P), suchen Sie „Codespaces: Rebuild Container“ und drücken Sie Enter. Im Fenster, das sich öffnet, wählen Sie „Full Rebuild“, nicht „Rebuild“.
  4. Der Codespace startet neu, sobald er wiederhergestellt ist, und richtet sich dabei wieder für den Kurs ein, samt infDas Abgabewerkzeug des Kurses: inf upload me im Terminal lädt Ihre Lösung hoch, lässt die Tests laufen und zeigt, ob die Übung ihren Stern hat, also für die Joker-Regel zählt. Glossar →. Die Anmeldung bei inf geht dabei verloren: Melden Sie sich mit inf login wieder an. Fehlt inf danach doch, steht unter Abgeben mit inf, was zu tun ist.
Im VS Code auf dem Desktop fehlt der Remote Explorer

Das Symbol erscheint erst, wenn die ErweiterungZusatzmodul, das VS Code um Funktionen ergänzt, etwa „Dev Containers“ oder „GitHub Codespaces“. Sie installieren es im Extensions-Panel (Strg+Shift+X). Glossar → „GitHub Codespaces“ installiert ist und Sie in VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar → mit GitHubPlattform von Microsoft, auf der man Code speichert und gemeinsam bearbeitet. Für den Codespace brauchen Sie dort ein kostenloses Konto. Glossar → angemeldet sind. Öffnen Sie den CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar → einmal im Browser auf cs50.dev und wählen Sie dort im Menü „☰“ → „Open in VS Code Desktop“. VS Code bietet dann an, die Erweiterung zu installieren.

Nach einem Neustart von VS Code ist der Codespace nicht mehr verbunden

Öffnen Sie in VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar → links das Panel „Remote Explorer“ (Bildschirm-Symbol), wählen Sie unter „GitHub Codespaces“ Ihren CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar → und klicken Sie auf „Connect to Codespace …“. Fehlt das Symbol, hilft der Eintrag Im VS Code auf dem Desktop fehlt der Remote Explorer. Im Browser öffnen Sie den Codespace einfach wieder auf cs50.dev.

Den Codespace komplett zurücksetzen

Meist reicht ein Full Rebuild, Ihre Dateien bleiben dabei erhalten: Strg + Shift + P (Mac: Cmd + Shift + P), „Codespaces: Rebuild Container“ suchen und im Fenster, das sich öffnet, „Full Rebuild“ wählen. Der CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar → startet neu und richtet sich dabei wieder für den Kurs ein, samt infDas Abgabewerkzeug des Kurses: inf upload me im Terminal lädt Ihre Lösung hoch, lässt die Tests laufen und zeigt, ob die Übung ihren Stern hat, also für die Joker-Regel zählt. Glossar →. Die Anmeldung bei inf geht dabei verloren: Melden Sie sich danach mit inf login wieder an.

Läuft er im Wiederherstellungsmodus, gehen Sie wie dort beschrieben vor. Ein ganz neuer Codespace ist selten nötig und leer: Laden Sie dann vorher Ihre Dateien herunter (Download von Dateien aus dem Codespace).

Der Codespace ist nach einer längeren Pause weg

GitHubPlattform von Microsoft, auf der man Code speichert und gemeinsam bearbeitet. Für den Codespace brauchen Sie dort ein kostenloses Konto. Glossar → löscht einen CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar →, der 30 Tage lang nicht benutzt wurde, samt den Dateien darin. So ist es voreingestellt. Öffnen Sie ihn also zwischendurch einmal, oder laden Sie vor einer längeren Pause Ihre Dateien herunter (Download von Dateien aus dem Codespace).

Ist er schon weg, legen Sie auf cs50.dev einen neuen an und richten ihn ab Schritt 4 der Anleitung für den Kurs ein. Ihre Abgaben sind nicht verloren, sie liegen auf dem Abgabeserver.

Debugger

„Configured debug type ‘cppdbg’ is not supported“

cppdbg ist der DebuggerWerkzeug, mit dem Sie ein Programm Zeile für Zeile ablaufen lassen und dabei die Werte der Variablen ansehen. In CS50 setzen Sie mit einem Klick links neben eine Zeilennummer einen Haltepunkt und starten dann mit debug50 ./programm den Debugger von VS Code. Glossar → der C/C++-ErweiterungZusatzmodul, das VS Code um Funktionen ergänzt, etwa „Dev Containers“ oder „GitHub Codespaces“. Sie installieren es im Extensions-Panel (Strg+Shift+X). Glossar → von VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar →. Die Kursumgebung bringt sie mit, Sie müssen sie nicht von Hand installieren. Gestartet wird der Debugger im Kurs nur mit debug50 ./programm im TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar →, nicht über „Run and Debug“ oder den Startknopf von VS Code. Prüfen Sie der Reihe nach:

  1. Ist VS Code mit der Kursumgebung verbunden („[Dev Container]“ im Fenstertitel, oder der Codespace)?
  2. Auf einem Rechner mit ARM-Prozessor: uname -m (siehe nächster Eintrag).
  3. Sonst das Fenster neu laden (Befehlspalette, „Developer: Reload Window“) und erneut debug50 ./programm. Hilft das nicht, den ContainerAbgeschottete Umgebung mit einem eigenen kleinen Linux und fertig installierten Programmen, die auf Ihrem Rechner läuft, ohne Ihr System zu verändern. Glossar → neu erstellen, bzw. den CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar → per Full Rebuild.

Bleibt die Meldung, bringen Sie sie und die Ausgabe von uname -m ins Tutorium mit. Zum Debuggen nutzen Sie bis dahin GitHub Codespaces.

Debugger läuft nicht auf Mac mit Apple-Chip oder ARM-Laptop

Wer den Dev ContainerEin Container, mit dem sich VS Code verbindet. Sie bedienen VS Code wie gewohnt, aber die Befehle im Terminal laufen im Container. Glossar → vor dem 18. Oktober 2026 eingerichtet hat, hat eine Fassung, in der der DebuggerWerkzeug, mit dem Sie ein Programm Zeile für Zeile ablaufen lassen und dabei die Werte der Variablen ansehen. In CS50 setzen Sie mit einem Klick links neben eine Zeilennummer einen Haltepunkt und starten dann mit debug50 ./programm den Debugger von VS Code. Glossar → auf ARM nicht läuft (etwa „Couldn’t get CS register: Input/output error“). Prüfen Sie im TerminalFenster, in dem Sie dem Computer Befehle als Text eintippen statt zu klicken. In VS Code liegt es im unteren Bereich des Fensters. Glossar → des Containers uname -m. Steht dort x86_64, stellen Sie nach Dev Container auf ARM-Rechnern umstellen um. Bis dahin geht der Debugger in GitHub Codespaces.

Haltepunkte werden ignoriert
  1. Mit makeBefehl, der den Compiler mit den richtigen Einstellungen aufruft: make hello erzeugt aus hello.c das Programm hello. Glossar → kompilierenProgramm, das Quellcode in Maschinencode übersetzt; diesen Vorgang nennt man kompilieren. Jedes C-Programm muss kompiliert werden, bevor es laufen kann. Glossar →, etwa make hello. make übersetzt in der Kursumgebung schon mit allem, was der DebuggerWerkzeug, mit dem Sie ein Programm Zeile für Zeile ablaufen lassen und dabei die Werte der Variablen ansehen. In CS50 setzen Sie mit einem Klick links neben eine Zeilennummer einen Haltepunkt und starten dann mit debug50 ./programm den Debugger von VS Code. Glossar → braucht.
  2. Links neben eine Zeilennummer klicken, es erscheint ein roter Punkt.
  3. debug50 ./hello aufrufen, mit ./ und ohne .c.

debug50 nimmt das Programm, nicht die Quelldatei, und ein eigenes -g ist nicht nötig. Ohne Haltepunkt läuft das Programm einfach durch. Gestartet wird der Debugger nur so, nicht über „Run and Debug“ oder den Startknopf von VS CodeVisual Studio Code, der kostenlose Code-Editor von Microsoft, in dem Sie im Kurs programmieren. Glossar →: Dafür ist im Kurs nichts eingerichtet. Im CodespaceEine Arbeitsumgebung auf einem Rechner von GitHub im Internet, auf dem die CS50-Werkzeuge installiert sind. Sie öffnen ihn unter cs50.dev im Browser und arbeiten dort in VS Code. Glossar →: Ist die EingabeaufforderungDas Zeichen am Anfang der Zeile im Terminal, etwa $ oder me/ $. Es zeigt, dass das Terminal auf Ihren nächsten Befehl wartet. Steht davor ein Ordnername wie me/, befinden Sie sich gerade in diesem Ordner. Glossar → lang, läuft er im Wiederherstellungsmodus.

Diese Seite als Markdown: ansehen herunterladen