Ausführen und Debuggen

Konfigurationen

Für jedes Ziel in Ihrem Projekt (für CMake-, Makefile- und Gradle-Projekten) generiert CLion eine Konfiguration. Diese kann erstellt und ausgeführt werden und ermöglicht Ihnen zudem die Konfiguration externer Tools, die vor/nach der Erstellungsphase in einem separaten UI-Dialog ausgeführt werden.

Konfigurationen

Konfigurations-Templates

Verwenden Sie die Konfigurations-Templates, um Konfigurationen für Unit-Tests, Debugging per Fernzugriff oder das reguläre Ausführen von Anwendungen zu erstellen.

Run-Konfiguration

Sie können die Programmdatei jeder Konfiguration Ihrer Wahl ändern oder sogar die Ausführung einer Konfiguration verhindern, indem Sie diesen Wert auf „Not selected" setzen.

Erstellen Sie Ihr Projekt, indem Sie Strg+F9 drücken und führen Sie die aktuell gewählte Konfiguration aus, indem Sie Shift+F10 drücken.

Debug-Konfiguration

Um das Debugging auszuführen, drücken Sie Shift+F9.

CLion bietet Ihnen zahlreiche hilfreiche Tastenkürzel wie „Step over/into“ (F8/F7), „Step out“ (Shift+F8) oder „Run to cursor“ (Alt+F9), um Ihnen während des Debugging-Vorgangs bei der Statusinspektion Ihres Codes behilflich zu sein.

Benutzerdefiniertes Erstellen und Ausführen

custom_target

Mit vom Build-System unabhängigen Build-Zielen können Sie benutzerdefinierte Ziele hinzufügen und alle Tools konfigurieren, die zum Erstellen oder Bereinigen des Ziels verwendet werden sollen.

Erstellen Sie zum Ausführen und Debuggen von benutzerdefinierten Zielen in CLion eine entsprechende Run/Debug-Konfiguration mithilfe des benutzerdefinierten Build-Anwendungstemplates.

Rekompilierung einer einzelnen Datei

Wenn Sie mit CMake- oder Kompilationsdatenbankprojekten arbeiten, kann die Funktion „Recompile“ (Shift+Strg+F9) dazu verwendet werden, Ihre Entwicklungszyklen in CLion zu beschleunigen. Diese Funktion führt die Kompilation einer ausgewählten Datei erneut durch, ohne die Rekompilierung des gesamten Projekts auszulösen.

Debugging/Veröffentlichung von Build-Typen

Bei Verwendung von CMake, können Sie die Umschaltmöglichkeit der Run-Konfiguration in der Symbolleiste oder im Popup-Fenster der Run (Shift+Alt+F10)/Debug (Shift+Alt+F9)-Konfiguration verwenden, um zwischen den CMake-Profilen (und Build-Typen) zu wechseln.

Eingabe/Ausgabe

CLion verwendet PTY als I/O-Einheit, was bedeutet, dass Sie ein Verhalten erwarten können, das dem Ausführen Ihres Projekts in einem Terminal oder sogar unter Windows ähnelt.

Debugging

CLion lässt sich mit dem GDB-Backend auf allen Platformen und mit LLDB unter macOS und Linux integrieren.

An Prozess anhängen

An Prozess anhängen

Mit CLion können Sie Prozesse debuggen, die auf dem lokalen oder einem Remote-System ausgeführt werden, aber nicht aus der IDE gestartet wurden, indem Sie den Debugger anhand der PID oder des Prozessnamens an diese Prozesse anhängen. Dadurch können Sie die integrierte Debugging-Oberfläche von CLion nutzen.

Haltepunkte

CLion umfasst einen integrierten Debugger, der Ihnen dabei hilft, die Ausführung Ihres Codes zu inspizieren. Sie können in CLion zwischen verschiedenen Haltepunkten wählen (alle Haltepunkte können in einem separaten Dialogfenster überprüft werden (mittels Tastenkürzel Strg+Shift+F8):

Haltepunkte
  • Line breakpoints: Zeilen-Haltepunkte sind der einfachste Weg, Ihren Code auf Fehler zu untersuchen. Klicken Sie einfach mit dem Mauszeiger in die linke Randleiste einer Zeile, um einen Haltepunkt zu setzen.
  • Symbolic breakpoints: Symbolische Haltepunkte dienen dazu, die Programmausführung zu stoppen, wenn eine spezifische Funktion ausgeführt wird. Suchen Sie mittels Codevervollständigung nach dem Namen eines Symbols, um zur entsprechenden Funktion zu gelangen.
  • Exception breakpoints: Ausnahme-Haltepunkte sind für das Auffinden von ausgelösten Ausnahmen zuständig – ganz ohne zusätzlichen Aufwand.
Ausführungspunkt setzen

Ausführungspunkt setzen

Mit der Aktion Set Execution Point to Cursor können Sie beim Debuggen den Ausführungspunkt Ihres Programms hin und her verschieben, einen anderen Zweig in einem if-else- oder switch-case-Konstrukt auswählen oder Schleifen unterbrechen, neu starten oder ganz überspringen. Sie müssen dazu nur einen Pfeil in der Randleiste zur gewünschten Zeile ziehen.

Beobachtungen und Evaluierungen

Die Beschreibung aller verfügbaren Variablen, einschließlich STL-Containerinhalten, wird in der Registerkarte „Variables“ im Debugging-Toolfenster platziert. Dort können Sie sämtliche Werte betrachten und sogar ändern, ohne die aktuelle Debugging-Sitzung zu unterbrechen:

Ausdruck auswerten

Über die Registerkarte GDB/LLDB haben Sie Zugang zur GDB/LLDB-Konsole. Die Ansichten „Frame" und „Watches“ (Beobachtungen) lassen Sie Problem genauer untersuchen. Bei der Auswahl eines zu beobachtenden Symbols profitieren Sie außerdem von der automatischen Vervollständigung.

Zusätzlich können Sie während einer Debugging-Sitzung jeden Ausdruck evaluieren, indem Sie Alt+F8 drücken.

Inline-Ansicht der Variablen

Inline-Ansicht der Variablen

Diese Funktion ermöglicht Ihnen, aktuelle Werte von Variablen direkt im Editor (neben der Deklaration der Variablen) einzusehen. Es ist nicht nötig, zur Registerkarte „Variables“ im Debugging- Toolfenster zu wechseln!

Disassembler

Disassembler-Ansicht

Sie können den Assembly-Code, dessen Syntax im Editor korrekt eingefärbt ist, untersuchen und schrittweise ausführen, um dem Problem auf den Grund zu gehen.

Beim Durchlaufen von Assembly-Code können Sie Haltepunkte an Anweisungszeilen hinzufügen/entfernen. Für eine von der Standardkonfiguration abweichende Konfiguration dieser Adresshaltepunkte verwenden Sie das Rechtsklick-Kontextmenü.

Unterstützt für GDB und LLDB.

Memory-Ansicht

Memory-Ansicht

In der Memory-Ansicht wird im Debugmodus der Speicher hinter dem Zeiger ausgelesen. Wählen Sie zum Aufrufen eine Zeigervariable in der Variablenansicht des Debuggers aus und drücken Sie Strg+Eingabe.

Wenn Sie die Memory-Ansicht während des schrittweise Debuggens geöffnet haben, hebt CLion die Speicheränderungen hervor, die in dem ausgewählten Speicherelement stattfinden.

Sie können aus der Memory-Ansicht zu einer bestimmten Adresse im Speicher navigieren. Verwenden Sie eine Zeigervariable oder einen Hexadezimalwert, der eine Adresse darstellt, oder springen Sie zur Adresse (&) einer beliebigen Variablen, an der Sie interessiert sind.

Die Codevervollständigung hilft Ihnen mit den bekannten Symbolen.

Debuggen als Root

Debuggen als Root

Mit CLion können Sie Ihre Anwendung mit Root-Rechten ausführen und debuggen. Dazu müssen Sie nur die entsprechende Option in der Run/Debug-Konfiguration auswählen. Dies funktioniert für CMake-, Makefile-, Gradle-Native-, Custom-Build- und CTest-Anwendungen.

Debuggen mit Core-Dumps

Debuggen mit Core-Dumps

Mit der Aktion Run | Open Core Dump… können Sie den gespeicherten Core-Dump eines abgestürzten Prozesses in CLion öffnen und debuggen. Sie können die Frames- und Variablenansicht nutzen, die Memory- und Disassembly-Ansicht analysieren, Ausdrücke auswerten und Debugger-Befehle in der Debugger-Konsole ausführen.

Anzeige paralleler Stacks

Anzeige paralleler Stacks

Beim Debuggen von Multithread-Anwendungen müssen Sie mehrere Threads gleichzeitig im Blick behalten. Die Parallel Stacks-Ansicht ist als separater Tab im Debug-Toolfenster implementiert und zeigt die Aufrufliste für alle Threads an. Dadurch können Sie die Aufrufpfade und Ausführungspunkte aller laufenden Threads überprüfen.

Symbolserver unter Windows

Beim Debuggen kann es vorkommen, dass Bibliothekssymbole nicht auf Ihrem lokalen System verfügbar sind. In diesem Fall können Sie einen Symbolserver verwenden, also einen Dateiserver, der Ihre Debugsymbole zentral auf einem Server statt auf den einzelnen Entwicklersystemen speichert. Wenn Sie CLion unter Windows verwenden, können Sie jetzt Symbolserver für den Debugger unter Settings | Build, Execution, Deployment | Debugger | Symbol Servers konfigurieren.

Mehr erfahren.