Bearbeiten und Fortfahren (C++)

Sie können „Hot Reload“, zuvor als „Bearbeiten und Fortfahren“ bezeichnet, in C++-Projekten verwenden. Weitere Informationen zu den Einschränkungen von „Bearbeiten und fortfahren“ finden Sie unter Unterstützte Codeänderungen (C++).

Sie können „Bearbeiten und fortfahren“ in C++-Projekten verwenden. Weitere Informationen zu den Einschränkungen von „Bearbeiten und fortfahren“ finden Sie unter Unterstützte Codeänderungen (C++).

Die Compileroption /Zo (erweitertes optimiertes Debuggen), fügt zusätzliche Informationen in .pdb-Dateien (Symboldateien) für Binärdateien, die ohne die Option /Od ((Debug) deaktivieren) kompiliert wurden, hinzu.

/Zo deaktiviert „Bearbeiten und fortfahren“. Weitere Informationen finden Sie unter How to: Debuggen von optimiertem Code.

Aktivieren oder Deaktivieren von „Bearbeiten und Fortfahren“

Möglicherweise möchten Sie das automatische Aufrufen von „Bearbeiten und Fortfahren“ deaktivieren, wenn Sie Änderungen am Code vornehmen, die nicht während der aktuellen Debugsitzung angewendet werden sollen. Sie können das automatische Aufrufen von „Bearbeiten und Fortfahren“ später wieder aktivieren.

Wichtig

Erforderliche Buildeinstellungen und weitere Informationen zur Featurekompatibilität finden Sie unter C++ „Bearbeiten und fortfahren“ in Visual Studio 2015 Update 3.

  1. Wenn Sie sich in einer Debugsitzung befinden, brechen Sie das Debuggen ab (UMSCHALT+F5).

  2. Alternativ dazu können Sie auch Tools>Optionen>Debuggen>.NET/C++ Hot Reload öffnen.

  3. Wählen Sie eine oder beide der folgenden Optionen aus, um „Bearbeiten und Fortfahren“ zu aktivieren.

    • Hot Reload und „Bearbeiten und Fortfahren“ beim Debuggen aktivieren. Aktiviert Hot Reload beim Starten mit angefügtem Debugger (F5).

    • Hot Reload beim Starten ohne Debuggen aktivieren. Aktiviert Hot Reload beim Starten ohne angefügten Debugger (F5).

    Das Ändern dieser Einstellungen wirkt sich auf alle Projekte aus, an denen Sie arbeiten. Sie müssen die Anwendung nicht neu erstellen, nachdem Sie die Einstellung geändert haben. Wenn Sie die Anwendung über die Befehlszeile oder mit einem Makefile erstellen, jedoch in der Visual Studio-Umgebung debuggen, können Sie die Option „Bearbeiten und Fortfahren“ trotzdem verwenden, sofern Sie die /ZI-Option festlegen.

  1. Wenn Sie sich in einer Debugsitzung befinden, brechen Sie das Debuggen ab (UMSCHALT+F5).

  2. Wählen Sie im Menü Extras den Befehl Optionen.

  3. Wählen Sie im Dialogfeld Optionen den Eintrag Debuggen > Allgemein aus.

  4. Wählen Sie zum Aktivieren „Bearbeiten und fortfahren“ aktivieren aus. Deaktivieren Sie das Kontrollkästchen, wenn Sie die Funktion deaktivieren möchten.

  5. Aktivieren bzw. deaktivieren Sie in der Gruppe Bearbeiten und Fortfahren das Kontrollkästchen Bearbeiten und Fortfahren aktivieren .

    Eine Änderung dieser Einstellung betrifft alle Projekte, an denen Sie arbeiten. Sie müssen die Anwendung nicht neu erstellen, nachdem Sie die Einstellung geändert haben. Wenn Sie die Anwendung über die Befehlszeile oder mit einem Makefile erstellen, jedoch in der Visual Studio-Umgebung debuggen, können Sie die Option „Bearbeiten und Fortfahren“ trotzdem verwenden, sofern Sie die /ZI-Option festlegen.

So übernehmen Sie explizit Codeänderungen

In C++ kann „Bearbeiten und fortfahren“ Codeänderungen auf zweierlei Weise übernehmen. Codeänderungen können implizit übernommen werden, wenn Sie einen Ausführungsbefehl wählen, oder explizit, wenn Sie den Befehl Codeänderungen übernehmen verwenden.

Wenn Sie Codeänderungen explizit übernehmen, bleibt das Programm im Unterbrechungsmodus und wird nicht ausgeführt.

  • Um Codeänderungen explizit zu übernehmen, wählen Sie im Menü Debuggen die Option Codeänderungen übernehmen.

Gewusst wie: Anhalten von Codeänderungen

Während Bearbeiten und Fortfahren Codeänderungen übernimmt, können Sie den Vorgang anhalten.

So halten Sie das Übernehmen von Codeänderungen an:

  • Wählen Sie im Menü Debuggen die Option Übernehmen von Codeänderungen beenden.

    Dieses Menüelement ist nur sichtbar, wenn Codeänderungen übernommen werden.

    Bei Verwendung dieser Option wird keine der Codeänderungen übernommen.

Zurücksetzen des Ausführungspunkts

Einige Codeänderungen können dazu führen, dass der Ausführungspunkt an eine neue Position verschoben wird, wenn die Änderung von "Bearbeiten und Fortfahren" übernommen wird. Mit "Bearbeiten und Fortfahren" wird der Ausführungspunkt so genau wie möglich platziert. Das Ergebnis ist jedoch möglicherweise nicht korrekt.

In C++ werden Sie durch ein Dialogfeld über eine Änderung des Ausführungspunkts informiert. Überprüfen Sie, ob die Position richtig ist, bevor Sie das Debuggen fortsetzen. Ist die Position nicht korrekt, verwenden Sie den Befehl Nächste Anweisung festlegen . Weitere Informationen finden Sie unter Nächste auszuführende Anweisung festlegen.

Arbeiten mit veraltetem Code

In einigen Fällen kann Bearbeiten und Fortfahren die Codeänderungen nicht sofort in die ausführbare Datei übernehmen, dies aber möglicherweise zu einem späteren Zeitpunkt nachholen, wenn Sie mit dem Debuggen fortfahren. Dies geschieht, wenn Sie eine Funktion bearbeiten, die die aktuelle Funktion aufruft, bzw. wenn Sie einer Funktion in der Aufrufliste neue Variablen von mehr als 64 Bytes hinzufügen.

In diesen Fällen fährt der Debugger so lange mit der Ausführung des ursprünglichen Codes fort, bis die Änderungen übernommen werden können. Der veraltete Code wird als temporäre Quelldatei in einem separaten Quellcodefenster angezeigt, mit einem Titel wie enc25.tmp. Der bearbeitete Quellcode wird weiterhin im ursprünglichen Quellcodefenster angezeigt. Wenn Sie versuchen, den veralteten Code zu bearbeiten, wird eine Warnmeldung angezeigt.