Projekteinstellungen für eine C++-Debugkonfiguration

Sie können die Projekteinstellungen für eine C- oder C++-Debugkonfiguration im Dialogfeld Eigenschaftenseiten entsprechend der folgenden Anweisung ändern: Festlegen von Debug- und Releasekonfigurationen. Anhand der folgenden Tabellen erfahren Sie, wo die debuggerspezifischen Einstellungen im Dialogfeld Eigenschaftenseiten zu finden sind.

Hinweis

Die Debugprojekteinstellungen in der Kategorie Konfigurationseigenschaften/Debugging sind für UWP-Apps und für in C++ geschriebene Komponenten unterschiedlich. Siehe Starten einer Debugsitzung (VB, C#, C++ und XAML)

Jede Debugeigenschafteneinstellung wird automatisch in die benutzerspezifische Datei (.vcxproj.user) der Projektmappe geschrieben und dort gespeichert, wenn Sie die Projektmappe speichern.

Geben Sie im Listenfeld Zu startender Debugger an, welcher Debugger verwendet werden soll. Eine entsprechende Erläuterung finden Sie in der Tabelle weiter unten. Die Auswahl beeinflusst, welche Eigenschaften angezeigt werden.

Ordner "Konfigurationseigenschaften" (Kategorie "Debuggen")

Einstellung Beschreibung
Debugger to launch (Zu startender Debugger) Gibt den auszuführenden Debugger mit den folgenden Auswahlmöglichkeiten an:

- Lokaler Windows-Debugger
- Remote-Windows-Debugger
- Webbrowserdebugger
- Webdienst-Debugger
Befehl (Lokaler Windows-Debugger) Gibt den Startbefehl für das auf dem lokalen Computer zu debuggende Programm an.
Remotebefehl (Remote-Windows-Debugger) Der Pfad für die EXE-Datei auf dem Remotecomputer. Geben Sie den Pfad wie auf dem Remotecomputer ein.
Befehlsargumente (Lokaler Windows-Debugger)

Remotebefehlsargumente (Windows-Remotedebugger)
– Gibt Argumente für den oben aufgeführten Befehl an.

In diesem Feld können die folgenden Umleitungsoperatoren verwendet werden:

< file
Liest "stdin" aus der Datei.

> file
Schreibt "stdout" in die Datei.

>> file
Fügt "stdout" an die Datei an.

2>file
Schreibt "stderr" in die Datei.

2>>file
Fügt "stderr" an die Datei an.

2> &1
Sendet "stderr (2)"-Ausgaben an denselben Speicherort wie "stdout (1)".

1> &2
Sendet "stdout (1)"-Ausgaben an denselben Speicherort wie "stderr (2)".

In den meisten Fällen sind diese Operatoren nur auf Konsolenanwendungen anwendbar.

Wenn Sie Escapezeichen im Befehl verwenden müssen, können Sie ASCII-Werte verwenden, z. B. %25, um % zu ersetzen. Wenn Sie den Befehl Debuggen starten verwenden, werden die vorangehenden Befehle in Anführungszeichen gesetzt, z. B. "<" anstelle von <.
Arbeitsverzeichnis Gibt das Arbeitsverzeichnis des zu debuggenden Programms bezogen auf das Projektverzeichnis an, in dem sich die EXE-Datei befindet. Wenn Sie kein Arbeitsverzeichnis festlegen, wird das Projektverzeichnis verwendet. Beim Remotedebuggen befindet sich das Projektverzeichnis auf dem Remoteserver.
Anfügen (Lokaler Windows-Debugger und Remote-Windows-Debugger) Gibt an, ob die Anwendung gestartet oder angefügt werden soll. Die Standardeinstellung ist "Nein".
Remoteservername (Remote-Windows-Debugger) Gibt den Namen eines anderen Remotecomputers an, auf dem Sie eine Anwendung debuggen möchten.

Das RemoteMachine-Buildmakro wird auf den Wert dieser Eigenschaft festgelegt. Weitere Informationen hierzu finden Sie unter Makros für Buildbefehle und -eigenschaften.
Verbindung (Remote-Windows-Debugger) Ermöglicht es Ihnen, für das Remotedebugging zwischen den Verbindungstypen "Standard" und "Ohne Authentifizierung" zu wechseln. Geben Sie im Feld Remoteservername den Namen des Remotecomputers an. Folgende Verbindungstypen stehen zur Verfügung:

- Remote mit Windows-Authentifizierung
- Remote ohne Authentifizierung

Hinweis: Der Remotecomputer ist durch das Remotedebuggen ohne Authentifizierung möglicherweise anfällig für Sicherheitsverletzungen. Der Windows-Authentifizierungsmodus ist sicherer.

Weitere Informationen finden Sie unter Remote Debugging setup (Einrichten des Remotedebuggens).
HTTP-URL (Webdienst- und Webbrowserdebugger) Gibt die URL zu dem Projekt an, das Sie debuggen.
Debuggertyp Gibt den Typ des zu verwendenden Debuggers an: Nur nativ, Nur verwaltet, Nur GPU, Gemischt, Automatisch (Standardeinstellung) oder Skript.

- Die Einstellung Nur nativ eignet sich für nicht verwalteten C++-Code.
- Die Einstellung Nur verwaltet ist für Code konzipiert, der in der Common Language Runtime ausgeführt wird (verwalteter Code).
- Mit Gemischt werden Debugger sowohl für verwalteten als auch für nicht verwalteten Code aufgerufen.
- Die Einstellung Automatisch legt den Debuggertyp anhand von Compilerdaten und EXE-Daten fest.
- Skript ruft einen Debugger für Skripts auf.
- Die Einstellung Nur GPU ist für C++ AMP-Code vorgesehen, der auf einem GPU-Gerät oder im DirectX-Referenzraster ausgeführt wird. Siehe Debuggen von GPU-Code
Umgebung (Lokaler Windows-Debugger und Windows-Remotedebugger) Gibt die Umgebungsvariablen für das Programm an, das Sie debuggen. Verwenden Sie die standardmäßige Umgebungsvariablensyntax (z. B. PATH="%SystemRoot%\..."). Je nach Einstellung der Zusammenführungsumgebung überschreiben diese Variablen die Systemumgebung oder werden mit der Systemumgebung zusammengeführt. Wenn Sie auf die rechte Spalte klicken, wird „Bearbeiten...“ angezeigt. Wählen Sie diesen Link aus, um den Eigenschaften-Editor zu öffnen und Umgebungsvariablen zu bearbeiten. Um mehrere Umgebungsvariablen hinzuzufügen, verwenden Sie den Eigenschaften-Editor und fügen Sie eine Variable pro Zeile hinzu.
Zusammenführungsumgebung (Lokaler Windows-Debugger) Legt fest, ob die in dem Feld Umgebung angegebenen Variablen mit der vom verwendeten Betriebssystem definierten Umgebung zusammengeführt werden. Die Standardeinstellung ist "Ja".
SQL-Debugging (alle außer MPI-Clusterdebugger) Ermöglicht das Debuggen von SQL-Prozeduren über die Visual C++-Anwendung. Die Standardeinstellung ist "Nein".
Debuggingbeschleunigungstyp (nur GPU-Debugging) Gibt das für das Debugging zu verwendende GPU-Gerät an. Durch die Installation von Gerätetreibern für kompatible GPU-Geräte werden zusätzliche Optionen hinzugefügt. Die Standardeinstellung lautet GPU – Softwareemulator.
GPU-Standardhaltepunktverhalten (nur GPU-Debugging) Gibt an, ob für jeden Thread in einer SIMD-Verzerrung ein Haltepunktereignis ausgelöst werden soll. Die Standardeinstellung gibt an, das Haltepunktereignis nur einmal pro Verzerrung auszulösen.
AMP-Standardbeschleunigung Gibt den Standard-AMPAccelerator beim Debuggen von GPU-Code an. Wählen Sie WARP-Softwarebeschleunigung aus, um zu untersuchen, ob ein Problem von der Hardware oder einem Treibers verursacht wird und nicht vom Code.
Bereitstellungsverzeichnis (Remote-Windows-Debugger) Gibt den Pfad auf dem Remotecomputer an, in den die Projektausgabe vor dem Start kopiert wird. Der Pfad kann eine Netzwerkfreigabe auf dem Remotecomputer sein oder ein Pfad zu einem Ordner auf dem Remotecomputer. Die Standardeinstellung ist leer, was bedeutet, dass die Projektausgabe nicht in eine Netzwerkfreigabe kopiert wird. Sie müssen im Dialogfeld „Konfigurations-Manager“ auch das Kontrollkästchen Bereitstellen aktivieren, um die Bereitstellung der Dateien zu ermöglichen. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen und Bearbeiten von Konfigurationen.
Zusätzliche bereitzustellende Dateien (Remote-Windows-Debugger) Wenn die Eigenschaft „Bereitstellungsverzeichnis“ festgelegt wird, handelt es sich hierbei um eine durch Semikolons getrennte Liste zusätzlicher Ordner oder Dateien, die in das Bereitstellungsverzeichnis kopieren werden sollen. Die Standardeinstellung ist leer, was bedeutet, dass keine zusätzlichen Ordner oder Dateien in den Bereitstellungsordner kopiert werden. Um den Inhalt eines Ordners in denselben Ordner im Bereitstellungsverzeichnis zu kopieren, geben Sie einen Ordnernamen an. Sie müssen im Dialogfeld „Konfigurations-Manager“ auch das Kontrollkästchen Bereitstellen aktivieren, um die Bereitstellung der Dateien zu ermöglichen. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen und Bearbeiten von Konfigurationen.
Visual C++-Debug-Laufzeitbibliotheken bereitstellen (Remote-Windows-Debugger) Wenn die Eigenschaft "Bereitstellungsverzeichnis" festgelegt wird, wird hierdurch angegeben, ob die Visual C++ Debugging-Laufzeitbibliotheken für die aktuelle Plattform in die Netzwerkfreigabe kopiert werden sollen. Die Standardeinstellung ist "Ja".

Ordner "C/C++" (Kategorie "Allgemein")

Einstellung Beschreibung
Debuginformationsformat (/Z7, /Zd, Zi, /ZI) Gibt den Typ der Debuginformationen an, die für das Projekt erstellt werden sollen.

Mit der Standardoption (/ZI) wird eine Programmdatenbank (.pdb) in einem Format erstellt, das mit "Bearbeiten und Fortfahren" kompatibel ist. Weitere Informationen hierzu finden Sie unter /Z7, /Zd, /Zi, /ZI (Debug information format) (/Z7, /Zd, /Zi, /ZI (Debuginformationsformat)).

Ordner "C/C++" (Kategorie "Optimierung")

Einstellung Beschreibung
Optimization Gibt an, ob der Compiler den erstellten Code optimieren soll. Durch die Optimierung wird der auszuführende Code geändert. Optimierter Code stimmt nicht mehr mit dem Quellcode überein, wodurch das Debuggen erschwert wird.

Die Standardoption (Deaktiviert (/0d) ) dient zum Unterdrücken der Optimierung. Sie können mit unterdrückter Optimierung entwickeln und sie anschließend bei der Erstellung der Code-Produktionsversion aktivieren.

Ordner "Linker" (Kategorie "Debuggen")

Einstellung Beschreibung
Debuginfo generieren (/DEBUG) Weist den Linker an, Debuginformationen in dem durch /Z7, /Zd, Zi oder /ZI festgelegten Format einzulesen.
Programmdatenbankdatei erstellen (/PDB:Name) In diesem Feld geben Sie den Namen einer PDB-Datei (Programmdatenbankdatei) an. Sie müssen ZI oder /Zi als Debuginformationsformat auswählen.
Private Symbole entfernen (/PDBSTRIPPED:Dateiname) Wenn die PDB-Datei keine privaten Symbole enthalten soll, geben Sie in diesem Feld den Namen einer PDB-Datei ein. Mit dieser Option wird eine zweite PDB-Datei generiert, wenn das Programmimage mit einer der Compiler- oder Linkeroptionen erstellt wurde, mit denen eine PDB-Datei generiert wird, wie „/DEBUG“, „/Z7“ oder „/Zd“. Oder "/Zi". Die zweite PDB-Datei enthält keine Symbole, die nicht an Kunden weitergegeben werden. Weitere Informationen finden Sie unter /PDBSTRIPPED (Private Symbole entfernen).
Zuordnungsdatei generieren (/MAP) Weist den Linker an, während der Verknüpfung eine Zuordnungsdatei zu generieren. Die Standardeinstellung ist "Nein". Weitere Informationen hierzu finden Sie unter /MAP (Zuordnungsdatei generieren).
Zuordnungsdateiname (/MAP:Name) Bei Auswahl von "Zuordnungsdatei generieren" können Sie in diesem Feld die Zuordnungsdatei angeben. Weitere Informationen hierzu finden Sie unter /MAP (Zuordnungsdatei generieren).
Zuordnungsexporte (/MAPINFO:EXPORTS) Fügt exportierte Funktionen in die Zuordnungsdatei ein. Die Standardeinstellung ist "Nein". Weitere Informationen finden Sie unter /MAPINFO (Daten in Zuordnungsdatei einfügen).
Debugfähige Assembly (/ASSEMBLYDEBUG) Gibt die Einstellungen für die /ASSEMBLYDEBUG-Option des Linkers an. Dabei sind folgende Werte möglich:

- Das Attribut „Debuggable“ wurde nicht ausgegeben.
- Problemnachverfolgung zur Laufzeit und deaktivierte Optimierungen (/ASSEMBLYDEBUG) . Dies ist die Standardeinstellung.
- Keine Problemnachverfolgung zur Laufzeit und aktivierte Optimierungen (/ASSEMBLYDEBUG) .
- <Vom übergeordneten Projekt erben oder Projektstandard>.
Weitere Informationen finden Sie unter /ASSEMBLYDEBUG (Add DebuggableAttribute) (/ASSEMBLYDEBUG (DebuggableAttribute hinzufügen)).

Sie können diese Einstellungen im Ordner "Konfigurationseigenschaften" (Kategorie "Debuggen") programmgesteuert über die Microsoft.VisualStudio.VCProjectEngine.VCDebugSettings-Schnittstelle ändern. Weitere Informationen finden Sie unter VCDebugSettings.

Andere Projekteinstellungen

Zum Debuggen anderer Projekttypen (etwa statische Bibliotheken und DLLs) muss das Visual Studio-Projekt in der Lage sein, die richtigen Dateien zu finden. Wenn Quellcode verfügbar ist, können Sie statische Bibliotheken und DLLs als separate Projekte zu derselben Projektmappe hinzufügen, um das Debuggen zu vereinfachen. Informationen zum Erstellen dieser Projekttypen finden Sie in den Artikeln zum Erstellen und Verwenden einer DLL (Dynamic Link Library) und zum Erstellen und Verwenden einer statischen Bibliothek. Wenn Quellcode verfügbar ist, können Sie auch ein neues Visual Studio-Projekt erstellen, indem Sie Datei>Neu>Projekt aus vorhandenem Code auswählen.

Informationen zum Debuggen von nicht in Ihrem Projekt enthaltenen DLLs finden Sie unter Debuggen von DLLs in Visual Studio (C#, C++, Visual Basic, F#). Wenn Sie Ihr eigenes DLL-Projekt Debuggen müssen, aber keinen Zugriff auf das Projekt für die aufrufende Anwendung haben, lesen Sie die Informationen unter Vorgehensweise: Debuggen über ein DLL-Projekt in Visual Studio (C#, C++, Visual Basic F#).

Siehe auch