Aracılığıyla paylaş


/Z7, /Zi, /ZI (Hata Ayıklama Bilgileri Biçimi)

/Z7, /Zive /ZI derleyici seçenekleri, programınız için oluşturulan hata ayıklama bilgilerinin türünü ve bu bilgilerin nesne dosyalarında mı yoksa bir program veritabanı (PDB) dosyasında mı tutulacağını belirtir.

Sözdizimi

/Z7
/Zi
/ZI

Açıklamalar

Bir hata ayıklama seçeneği belirttiğinizde, derleyici hata ayıklayıcı tarafından kullanılmak üzere işlevler ve değişkenler, tür bilgileri ve satır konumları için sembol adları üretir. Bu sembolik hata ayıklama bilgileri, derleyici tarafından üretilen nesne dosyalarına (.obj dosyalar) veya yürütülebilir dosya için ayrı bir PDB dosyasına (dosya .pdb ) eklenebilir. Hata ayıklama bilgileri biçim seçenekleri aşağıdaki bölümlerde açıklanmıştır.

Hiçbiri

Varsayılan olarak, hata ayıklama bilgileri biçimi seçeneği belirtilmezse, derleyici hata ayıklama bilgisi üretmez, bu nedenle derleme daha hızlıdır.

/Z7

seçeneği, /Z7 hata ayıklayıcıyla kullanılmak üzere tam simgesel hata ayıklama bilgileri içeren nesne dosyaları oluşturur. Bu nesne dosyaları ve bunlardan oluşturulan tüm kitaplıklar, hata ayıklama bilgisi olmayan dosyalardan önemli ölçüde büyük olabilir. Sembolik hata ayıklama bilgileri değişkenlerin, işlevlerin ve satır numaralarının adlarını ve türlerini içerir. Derleyici tarafından hiçbir PDB dosyası üretilmemiş. Ancak bağlayıcı seçeneğine geçirilirse /DEBUG bu nesne dosyalarından veya kitaplıklarından bir PDB dosyası yine de oluşturulabilir.

Üçüncü taraf kitaplıkların hata ayıklama sürümlerinin dağıtımcıları için PDB dosyası olmamasının bir avantajı vardır. Ancak, kitaplık bağlantı aşamasında ve hata ayıklama için önceden derlenmiş üst bilgilerin nesne dosyaları gereklidir. Nesne dosyasında yalnızca tür bilgileri (kod yoksa) .pch kitaplığı oluştururken varsayılan olarak etkin olan (Hata Ayıklama Kitaplığı için PCH Başvurusu Ekle) seçeneğini de kullanmanız /Yl gerekir.

Kullanım dışı ( /Gm En Az Yeniden Derlemeyi Etkinleştir) seçeneği belirtildiğinde /Z7 kullanılamaz.

/Zi

seçeneği, /Zi hata ayıklayıcıyla kullanmak üzere tüm sembolik hata ayıklama bilgilerini içeren ayrı bir PDB dosyası oluşturur. Hata ayıklama bilgileri nesne dosyalarına veya yürütülebilir dosyalara dahil değildir ve bu da onları çok daha küçük hale getirir.

kullanımı /Zi iyileştirmeleri etkilemez. Ancak, /Zi anlamına /debuggeliyor. Daha fazla bilgi için bkz /DEBUG . (Hata Ayıklama Bilgisi Oluşturma).

hem /clrhem de /Zi belirttiğinizdeDebuggableAttribute, özniteliği derleme meta verilerine yerleştirilmiyor. bunu istiyorsanız, kaynak kodunda belirtmelisiniz. Bu öznitelik, uygulamanın çalışma zamanı performansını etkileyebilir. Özniteliğin Debuggable performansı nasıl etkilediği ve performans etkisini nasıl değiştirebileceğiniz hakkında daha fazla bilgi için bkz . Görüntünün hatalarını ayıklamayı kolaylaştırma.

Derleyici PDB dosyasını <project>.pdb<project> adlandırarak projenizin adıdır. Projenin dışında bir dosya derlerseniz, derleyici adlı VC<x>.pdbbir PDB dosyası oluşturur; burada <x> , kullanılan derleyici sürümünün ana ve ikincil sürüm numarasının birleştirilmiş halidir. Derleyici, bu seçenek kullanılarak oluşturulan her nesne dosyasına PDB'nin adını ve tanımlayıcı bir zaman damgası imzasını ekler. Bu ad ve imza, hata ayıklayıcıyı sembolik ve satır numarası bilgilerinin konumuna işaret etti. PDB dosyasındaki ad ve imza, hata ayıklayıcıya yüklenecek simgelerin yürütülebilir dosyasıyla eşleşmelidir. WinDBG hata ayıklayıcısı, komutunu kullanarak .symopt+0x40 eşleşmeyen simgeleri yükleyebilir. Visual Studio'nun eşleşmeyen simgeleri yüklemek için benzer bir seçeneği yoktur.

kullanılarak /Ziderlenmiş nesnelerden bir kitaplık oluşturursanız, kitaplık bir programa bağlandığında ilişkili PDB dosyasının kullanılabilir olması gerekir. Bu, kitaplığı dağıtırsanız PDB dosyasını da dağıtmanız gerektiği anlamına gelir. PDB dosyalarını kullanmadan hata ayıklama bilgilerini içeren bir kitaplık oluşturmak için seçeneğini belirlemeniz /Z7 gerekir. Önceden derlenmiş üst bilgi seçeneklerini kullanırsanız, hem önceden derlenmiş üst bilgi hem de kaynak kodun geri kalanı için hata ayıklama bilgileri PDB dosyasına yerleştirilir.

/ZI

seçeneği /ZI ile /Zibenzerdir, ancak Düzenle ve Devam Et özelliğini destekleyen bir biçimde bir PDB dosyası oluşturur. Hata ayıklama özelliklerini Düzenle ve Devam Et'i kullanmak için bu seçeneği kullanmanız gerekir. Düzenle ve Devam Et özelliği geliştirici üretkenliği için kullanışlıdır, ancak kod boyutu, performans ve derleyici uyumluluğunda sorunlara neden olabilir. İyileştirmelerin çoğu Düzenle ve Devam Et ile uyumsuz olduğundan, kullanarak /ZI kodunuzdaki deyimleri #pragma optimize devre dışı bırakır. Seçeneği /ZI önceden tanımlanmış makro kullanımıyla __LINE__ da uyumsuzdur; ile /ZI derlenen kod, makro genişletmelerinde kullanılabilse __LINE__ de, türü olmayan bir şablon bağımsız değişkeni olarak kullanılamaz__LINE__.

seçeneği, /ZI derlemenizde hem (İşlev Düzeyi Bağlamayı Etkinleştir) hem /FC de /Gy (Tanılamada Kaynak Kod Dosyasının Tam Yolu) seçeneklerinin kullanılmasını zorlar.

/ZI(Ortak Dil Çalışma Zamanı Derlemesi) ile /clr uyumsuz.

Not

seçeneği /ZI yalnızca x86 ve x64 işlemcileri hedefleyen derleyicilerde kullanılabilir. Bu derleyici seçeneği ARM işlemcilerini hedefleyen derleyicilerde kullanılamaz.

Bu derleyici seçeneğini Visual Studio geliştirme ortamında ayarlamak için

  1. Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.

  2. Yapılandırma Özellikleri>C/C++>Genel özellik sayfasını seçin.

  3. Hata Ayıklama Bilgileri Biçimi özelliğini değiştirin. Değişikliklerinizi kaydetmek için Tamam'ı seçin.

Bu derleyici seçeneğini program üzerinden ayarlamak için

Ayrıca bkz.

MSVC derleyici seçenekleri
MSVC derleyicisi komut satırı söz dizimi