/Z7, /Zi, /ZI (Format informacji o debugowaniu)
Wybierz typ informacji o debugowaniu utworzonych dla programu i czy te informacje są przechowywane w plikach obiektowych (.obj), czy w bazie danych programu (PDB).
/Z{7|i|I}
Uwagi
Opcje te są opisane w poniższej tabeli.
Brak
Nie tworzy informacji o debugowaniu, więc kompilacja jest szybsza./Z7
Tworzy plik .obj zawierający pełne symboliczne informacje dla debugowania do użytku z debugerem.Symboliczne informacje debugowania zawierają nazwy i typy zmiennych, a także funkcje i numery wierszy.Nie jest tworzony plik .pdb.Dla dystrybutorów bibliotek innych producentów nieposiadanie pliku .pdb jest zaletą.Jednak pliki .obj dla wstępnie skompilowanych nagłówków są niezbędne w fazie linkowania i debugowania.Jeśli istnieje tylko informacja o typie (i nie ma kodu) w plikach obiektowych .pch, musisz też uruchomić kompilację z parametrem /Yl (Wprowadź odnośnik PCH dla bibliotek debugowania).
/Zi
Tworzy bazę danych programu (PDB) zawierającą informacje o typie i informacje symboliczne dla debugowania do użytku z debugerem.Symboliczne informacje debugowania zawierają nazwy i typy zmiennych, a także funkcje i numery wierszy.Opcja /Zi nie wpływa na optymalizację.Jednak /Zi pociąga za sobą /debug; zobacz /DEBUG (Generowanie informacji o debugowaniu), aby uzyskać więcej informacji.
Informacje o typie są umieszczane w pliku .pdb, a nie w pliku .obj.
Możesz użyć /Gm (Włącz minimalną ponowną kompilację) z /Zi, podczas gdy /Gm nie jest dostępny podczas kompilacji z /Z7.
Podczas kompilowania z /Zi i /clr, atrybut DebuggableAttribute nie zostanie umieszczony w metadanych zestawu; należy go określić w kodzie źródłowym, jeśli chcesz go zastosować.Ten atrybut może mieć wpływ na wydajność wykonywania aplikacji.Aby uzyskać więcej informacji dotyczących sposobu, w jaki atrybut Debuggable ma wpływ na wydajność i jak można zmodyfikować ten wpływ na wydajność, zobacz Ułatwianie debugowania obrazu.
/ZI
Tworzy bazę danych programu, jak opisano powyżej, w formacie, który obsługuje funkcję Edit-and-Continue.Jeśli chcesz używać debugowania "Edytuj i kontynuuj" (Edit-and-Continue), musisz użyć tej opcji.Ponieważ większość optymalizacji jest niezgodnych z funkcją Edytuj i kontynuuj, polecenie /ZI wyłącza wszelkie instrukcje #pragma optimize w kodzie.Opcja /ZI powoduje, że polecenia /Gy (Włączenie łączenia na poziomie funkcji) i /FC (Pełna ścieżka pliku kodu źródłowego w Diagnostyce) są wykorzystywane w kompilacji.
Opcja /ZI nie jest zgodna z poleceniem /clr (Kompilacja środowiska uruchomieniowego języka wspólnego).
[!UWAGA]
Opcja /ZI jest dostępna tylko w kompilatorze dla architektury x86; ta opcja kompilatora nie jest dostępna w kompilatorach przeznaczonych dla architektury x64 ani procesorów ARM.
Kompilator nadaje bazie danych programu nazwę project.pdb.Jeśli skompilujesz plik bez projektu, kompilator utworzy bazę danych o nazwie VCx0.pdb., gdzie x to główny numer użytej wersji Visual C++.Kompilator osadza nazwę PDB w każdym pliku .obj utworzonym przy użyciu tej opcji, wskazując debugerowi lokalizację symboli i informacje o numerze wiersza.Gdy używasz tej opcji, pliki .obj będą mniejsze, ponieważ informacje debugowania są przechowywane w pliku .pdb, a nie w plikach .obj.
Jeśli tworzysz bibliotekę z obiektów, które zostały skompilowane przy użyciu tej opcji, skojarzony plik .pdb musi być dostępny w momencie linkowania biblioteki z danym programem.W ten sposób, jeśli rozpowszechniasz bibliotekę, musisz rozpowszechnić PDB.
Aby utworzyć bibliotekę, która zawiera informacje o debugowaniu bez używania plików .pdb, należy wybrać opcję zgodności kompilatora z C 7.0 (/Z7).Jeśli używasz opcji wstępnie skompilowanych nagłówków, debugowanie informacji zarówno dla wstępnie skompilowanego nagłówka, jak i pozostałej części kodu źródłowego jest umieszczane w PDB.Opcja /Yd jest ignorowana, jeżeli określono opcję bazy danych programu.
Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio
Otwórz okno dialogowe Strony właściwości projektu.Szczegółowe informacje – zobacz: Porady: otwieranie stron właściwości projektów.
Kliknij folder C/C++.
Kliknij stronę właściwości Ogólne.
Zmodyfikuj właściwość Formatu informacji debugowania.
Aby programowo ustawić tę opcję kompilatora
- Zobacz DebugInformationFormat.