Freigeben über


/Z7, /Zi, /ZI (Debuginformationsformat)

Aktualisiert: November 2007

Wählen Sie aus, welcher Typ von Debuginformationen für Ihr Programm erstellt wird und ob diese Informationen in Objektdateien (.obj) oder in einer Programmdatenbank (PDB) gespeichert werden.

/Z{7|i|I}

Hinweise

Die Optionen werden in der folgenden Tabelle beschrieben.

  • Keine
    Erzeugt keine Debuginformationen, sodass die Kompilierung schneller ist.

  • /Z7
    Generiert eine OBJ-Datei mit vollständigen symbolischen Debuginformationen zur Verwendung mit dem Debugger. Zu den symbolischen Debuginformationen gehören die Namen und Typen von Variablen sowie Funktionen und Zeilennummern. Es wird keine PDB-Datei generiert.

    Für die Verteiler von Drittanbieter-Bibliotheken ist es von Vorteil, keine PDB-Datei zu haben. Die OBJ-Dateien für die vorkompilierten Header sind jedoch während der Verknüpfungsphase und für das Debuggen erforderlich. Wenn die PCH-Objektdateien nur Typinformationen (und keinen Code) enthalten, müssen Sie außerdem mit /Yl (PCH-Verweis für Debugbibliothek einfügen) kompilieren.

  • /Zi
    Erzeugt eine Programmdatenbank (PDB) mit Typinformationen und symbolischen Debuginformationen zur Verwendung mit dem Debugger. Zu den symbolischen Debuginformationen gehören die Namen und Typen von Variablen sowie Funktionen und Zeilennummern.

    /Zi hat keinen Einfluss auf Optimierungen. /Zi impliziert aber /debug. Weitere Informationen finden Sie unter /DEBUG (Debuginfo generieren).

    Typinformationen werden in der PDB-Datei, nicht in der OBJ-Datei abgelegt.

    Sie können /Gm (Minimale Neuerstellung aktivieren) mit /Zi verwenden. /Gm ist jedoch nicht verfügbar, wenn sie mit /Z7 kompilieren.

    Beim Kompilieren mit /Zi und /clr wird das DebuggableAttribute-Attribut nicht in den Assemblymetadaten abgelegt. Sie müssen es im Quellcode angeben, um es zu verwenden. Dieses Attribut kann Auswirkungen auf die Laufzeitleistung der Anwendung haben. Weitere Informationen zu den Auswirkungen des Debuggable-Attributs auf die Leistung und möglichen Änderungen der Leistungsauswirkungen finden Sie unter Erleichtern des Debuggens für ein Abbild.

  • /ZI
    Erzeugt eine Programmdatenbank (siehe Beschreibung weiter oben) in einem Format, das das Feature Bearbeiten und Fortfahren unterstützt. Wenn Sie das Debuggen mit Bearbeiten und Fortfahren verwenden möchten, müssen Sie diese Option einsetzen. Da die meisten Optimierungen mit Bearbeiten und Fortfahren nicht kompatibel sind, werden mit /ZI alle #pragma optimize-Anweisungen im Code deaktiviert.

    /ZI bewirkt, dass /Gy (Funktionslevel-Linking aktivieren) in der Kompilierung verwendet wird.

    /ZI ist nicht mit /clr (Common Language Runtime-Kompilierung) kompatibel.

    Hinweis:

    /ZI ist nur im auf x86 abzielenden Compiler verfügbar. Diese Compileroption steht nicht in Compilern zur Verfügung, die auf x64 oder die Itanium-Prozessorfamilie (IPF) abzielen.

Die Programmdatenbank wird vom Compiler mit project.pdb benannt. Wenn Sie eine Datei ohne ein Projekt kompilieren, wird vom Compiler eine Datenbank mit dem Namen VCx0.pdb. erstellt, wobei x die verwendete Hauptversion von Visual C++ ist. Der Compiler bettet den Namen der PDB in jede mit dieser Option erstellte OBJ-Datei ein und verweist so den Debugger auf den Standort von symbolischen Informationen und Zeilennummern. Mit dieser Option werden die OBJ-Dateien kleiner, weil die Debuginformationen nicht in OBJ-Dateien, sondern in der PDB-Datei gespeichert werden.

Wenn Sie eine Bibliothek von Objekten erstellen, die mit dieser Option kompiliert worden sind, muss die zugeordnete PDB-Datei verfügbar sein, wenn die Bibliothek mit einem Programm verknüpft wird. Daher müssen Sie auch die PDB weitergeben, wenn Sie die Bibliothek weitergeben.

Zum Erstellen einer Bibliothek mit Debuginformationen ohne Verwendung von PDB-Dateien wählen Sie die Option C7.0-kompatibel (/Z7) des Compilers. Wenn Sie die Optionen Vorkompilierte Header verwenden, werden Debuginformationen sowohl für den vorkompilierten Header als auch den restlichen Quellcode in der PDB abgelegt. Die /Yd-Option wird ignoriert, wenn die Programmdatenbank-Option angegeben ist.

So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Ausführliche Informationen finden Sie unter Gewusst wie: Öffnen von Projekteigenschaftenseiten.

  2. Klicken Sie auf den Ordner C/C++.

  3. Klicken Sie auf die Eigenschaftenseite Allgemein.

  4. Ändern Sie die Eigenschaft Debuginformationsformat.

So legen Sie diese Compileroption programmgesteuert fest

Siehe auch

Referenz

Compileroptionen

Festlegen von Compileroptionen