Freigeben über


Unterstützte Codeänderungen und -einschränkungen (C++)

Mit "Bearbeiten und Fortfahren" für Visual C++ können die meisten Arten von Codeänderungen behandelt werden. Einige Änderungen können während der Programmausführung jedoch nicht übernommen werden. Um diese Änderungen zu übernehmen, müssen Sie die Ausführung anhalten und eine neue Version des Codes erstellen.

Weitere Informationen zum Arbeiten mit "Bearbeiten und Fortfahren" für C++ in Visual Studio finden Sie unter Bearbeiten und Fortfahren (Visual C++).

In diesem Artikel

Nicht unterstützte Änderungen

Nicht unterstützte Szenarien

Einschränkungen für Verknüpfungen

Einschränkungen für vorkompilierte Header

Einschränkungen für IDL-Attribute

Nicht unterstützte Änderungen

Folgende Änderungen an C-/C++-Code können während einer Debugsitzung nicht übernommen werden:

  • Die meisten Änderungen an globalen oder statischen Daten.

  • Änderungen an ausführbaren Dateien, die von einem anderen Computer kopiert und nicht lokal erstellt wurden.

  • Änderungen an Datentypen, die das Layout eines Objekts beeinflussen (z. B. Datenmember einer Klasse).

  • Hinzufügen von mehr als 64 KB neuen Codes oder neuer Daten.

  • Hinzufügen von Variablen, die an einer Stelle vor dem Anweisungszeiger einen Konstruktor benötigen.

  • Änderungen, die sich auf Code auswirken, der eine Laufzeitinitialisierung benötigt.

  • Das Hinzufügen von Ausnahmehandlern in bestimmten Instanzen.

  • Änderungen an Ressourcendateien.

  • Änderungen an Code in schreibgeschützten Dateien.

  • Änderungen am Code ohne entsprechende PDB-Datei.

  • Änderungen an Code ohne Objektdatei.

Wenn Sie eine dieser Änderungen vornehmen und anschließend versuchen, die Codeänderungen zu übernehmen, wird im Fenster Ausgabe eine Warnung oder eine Fehlermeldung angezeigt.

  • Von "Bearbeiten und Fortfahren" werden keine statischen Bibliotheken aktualisiert. Wenn Sie eine Änderung an einer statischen Bibliothek vornehmen, wird die Ausführung ohne Warnung mit der alten Version fortgeführt.

Nicht unterstützte Szenarien

"Bearbeiten und Fortfahren" steht für C/C++ in den folgenden Debugszenarien nicht zur Verfügung:

  • Debuggen von systemeigenen, mit /Zo (Enhance Optimized Debugging) kompilierten Apps

  • Debuggen von Windows Store-Apps oder -Komponenten.

  • Debuggen unter Windows 98.

  • Debuggen im gemischten Modus (systemeigen/verwaltet).

  • Debuggen von JavaScript.

  • SQL-Debuggen.

  • Debuggen einer Dumpdatei.

  • Bearbeiten von Code nach einer nicht behandelten Ausnahme, wenn die Option Aufrufliste für unbehandelte Ausnahmen entladen nicht aktiviert ist.

  • Debuggen einer App über Anfügen an, anstatt die App durch Auswählen von Start im Menü Debuggen auszuführen.

  • Debuggen von optimiertem Code.

  • Debuggen einer alten Version des Codes, wenn eine neue Version aufgrund von Buildfehlern nicht erstellt werden konnte.

Zurück nach obenIn diesem Artikel

Einschränkungen für Verknüpfungen

Optionen des Linkers, durch die "Bearbeiten und Fortfahren" deaktiviert wird | Automatisches Neuverknüpfen von Einschränkungen

Optionen des Linkers, durch die "Bearbeiten und Fortfahren" deaktiviert wird

Die folgenden Optionen des Linkers deaktivieren Bearbeiten und Fortfahren:

  • Durch die Einstellung /OPT:REF, /OPT:ICF oder /INCREMENTAL:NO wird Bearbeiten und Fortfahren deaktiviert. Folgende Warnung wird angezeigt:

    LINK : Warnung LNK4075: ignoriere /EDITANDCONTINUE aufgrund von /OPT

    Angabe

  • Durch die Einstellung von /ORDER, /RELEASE oder /FORCE wird Bearbeiten und Fortfahren deaktiviert. Folgende Warnung wird angezeigt:

    LINK: Warnung LNK4075: /INCREMENTAL wird aufgrund von /option ignoriert

    Angabe

  • Durch das Festlegen einer beliebigen Option, die die Erstellung einer Programmdatenbankdatei (.pdb) verhindert, wird Bearbeiten und Fortfahren deaktiviert, wobei keine spezifische Warnung ausgegeben wird.

Automatisches Neuverknüpfen von Einschränkungen

In der Standardeinstellung wird durch Bearbeiten und Fortfahren das Programm am Ende der Debugsitzung neu gebunden, um eine aktuelle ausführbare Datei zu erstellen.

Bearbeiten und Fortfahren kann das Programm nicht erneut binden, wenn Sie an einer anderen Position als der der ursprünglichen Erstellung debuggen. Ihnen wird in einer Meldung mitgeteilt, dass Sie manuell neu erstellen müssen.

Bearbeiten und Fortfahren erstellt keine statischen Bibliotheken neu. Wenn Sie eine statische Bibliothek mit "Bearbeiten und Fortfahren" ändern, müssen Sie die Bibliothek manuell neu erstellen und die Apps anschließend mit der neuen Bibliothek erneut verknüpfen.

Durch Bearbeiten und Fortfahren können keine benutzerdefinierten Schritte aufgerufen werden. Wenn das Programm auf benutzerdefinierten Buildschritten beruht, können Sie es manuell neu erstellen, damit benutzerdefinierte Buildschritte aufgerufen werden können. In diesem Fall können Sie die erneute Bindung nach Ausführen von Bearbeiten und Fortfahren deaktivieren. Dies gewährleistet, dass Sie aufgefordert werden, diese manuell neu zu erstellen.

So deaktivieren Sie das erneute Binden nach "Bearbeiten und Fortfahren"

  1. Klicken Sie im Menü Debuggen auf Optionen und Einstellungen.

  2. Öffnen Sie im Dialogfeld Optionen den Knoten Debugging, und wählen Sie den Knoten Bearbeiten und Fortfahren aus.

  3. Deaktivieren Sie das Kontrollkästchen Codeänderungen nach dem Debuggen erneut binden.

Zurück nach obenIn diesem Artikel

Einschränkungen für vorkompilierte Header

Durch Bearbeiten und Fortfahren werden vorkompilierte Header standardmäßig im Hintergrund geladen und verarbeitet, um die Verarbeitung von Codeänderungen zu beschleunigen. Zum Laden vorkompilierter Header muss physischer Speicher belegt werden. Daher können beim Kompilieren auf einem Computer mit begrenztem Arbeitsspeicher Probleme auftreten. Sie können feststellen, ob möglicherweise ein solches Problem besteht, indem Sie mithilfe des Windows Task-Managers den während des Debuggens verfügbaren physischen Speicher bestimmen. Wenn dabei die Größe der vorkompilierten Header überschritten wird, kann Bearbeiten und Fortfahren problemlos ausgeführt werden. Wenn der Speicherplatz geringer als die vorkompilierten Header ist, können Sie das Laden von vorkompilierten Headern im Hintergrund durch Bearbeiten und Fortfahren verhindern.

So deaktivieren Sie das Laden vorkompilierter Header im Hintergrund für "Bearbeiten und Fortfahren"

  1. Klicken Sie im Menü Debuggen auf Optionen und Einstellungen.

  2. Öffnen Sie im Dialogfeld Optionen den Knoten Debugging, und wählen Sie den Knoten Bearbeiten und Fortfahren aus.

  3. Deaktivieren Sie das Kontrollkästchen Präkompilierung zulassen.

Zurück nach obenIn diesem Artikel

Einschränkungen für IDL-Attribute

"Bearbeiten und Fortfahren" unterstützt nicht das Neugenerieren von IDL-Dateien (Interface Definiton Language). Aus diesem Grund werden Änderungen an IDL-Attributen während des Debuggens nicht widergespiegelt. Wenn Sie die Ergebnisse von Änderungen an IDL-Attributen anzeigen möchten, müssen Sie das Debuggen beenden und die App neu erstellen. "Bearbeiten und Fortfahren" erzeugt keinen Fehler bzw. keine Fehlermeldung, wenn IDL-Attribute geändert wurden. Weitere Informationen finden Sie unter IDL-Attribute.

Zurück nach obenIn diesem Artikel

Siehe auch

Weitere Ressourcen

Bearbeiten und Fortfahren (Visual C++)