Sdílet prostřednictvím


/Z7, , /Zi/ZI (formát informací ladění)

Možnosti /Z7, /Zia /ZI kompilátoru určují typ ladicí informace vytvořené pro váš program a zda jsou tyto informace uloženy v souborech objektů nebo v souboru databáze programu (PDB).

Syntaxe

/Z7
/Zi
/ZI

Poznámky

Když zadáte možnost ladění, kompilátor vytvoří názvy symbolů pro funkce a proměnné, informace o typu a umístění řádků pro použití ladicím programem. Tyto symbolické informace o ladění mohou být zahrnuty buď v souborech objektů (.obj soubory) vytvořené kompilátorem, nebo v samostatném souboru PDB ( .pdb soubor) spustitelného souboru. Možnosti formátu informací o ladění jsou popsány v následujících částech.

Nic

Pokud není zadána možnost formátu informací o ladění, kompilátor ve výchozím nastavení nevygeneruje žádné informace o ladění, takže kompilace je rychlejší.

/Z7

Tato /Z7 možnost vytvoří soubory objektů, které obsahují také úplné symbolické informace o ladění pro použití s ladicím programem. Tyto soubory objektů a všechny knihovny vytvořené z nich mohou být podstatně větší než soubory, které nemají žádné informace o ladění. Symbolické informace o ladění zahrnují názvy a typy proměnných, funkcí a čísel řádků. Kompilátor nevygeneruje žádný soubor PDB. Soubor PDB je však možné vygenerovat z těchto souborů nebo knihoven objektů, pokud je linker předán možnost /DEBUG .

Pro distributory ladicí verze knihoven třetích stran existuje výhoda, že soubor PDB nemáte. Soubory objektů pro všechny předkompilované hlavičky jsou však nezbytné během fáze propojení knihovny a pro ladění. Pokud soubor objektu obsahuje pouze informace o typu (a žádný kód .pch ), musíte při sestavování knihovny použít /Yl také možnost (Vložit odkaz PCH pro knihovnu ladění), která je ve výchozím nastavení povolená.

Zastaralá /Gm možnost (Povolit minimální opětovné sestavení) není dostupná, pokud /Z7 je zadána.

/Zi

Tato /Zi možnost vytvoří samostatný soubor PDB, který obsahuje všechny symbolické informace o ladění pro použití s ladicím programem. Informace o ladění nejsou zahrnuty v souborech objektů nebo spustitelném souboru, což z nich dělá mnohem menší.

/Zi Použití nemá vliv na optimalizace. Nicméně, znamená /debugto /Zi , že . Další informace najdete v tématu /DEBUG (Generování informací o ladění).>

Když zadáte obojí /Zi a /clr, DebuggableAttribute atribut není umístěn v metadatech sestavení. Pokud ho chcete, musíte ho zadat ve zdrojovém kódu. Tento atribut může ovlivnit výkon modulu runtime aplikace. Další informace o tom, jak Debuggable atribut ovlivňuje výkon a jak můžete upravit dopad na výkon, najdete v tématu Usnadnění ladění obrázku.

Kompilátor pojmenuje soubor <project>.pdbPDB , kde <project> je název projektu. Pokud zkompilujete soubor mimo projekt, kompilátor vytvoří soubor PDB s názvem VC<x>.pdb, kde <x> je zřetězení hlavní verze a podverze používané verze kompilátoru. Kompilátor vloží název souboru PDB a identifikaci časového razítka podpisu do každého souboru objektu vytvořeného pomocí této možnosti. Tento název a podpis odkazují ladicí program na umístění symbolických a čísel řádků. Název a podpis v souboru PDB musí odpovídat spustitelnému souboru pro symboly, které se mají načíst do ladicího programu. Ladicí program WinDBG může pomocí .symopt+0x40 příkazu načíst neshodné symboly. Visual Studio nemá podobnou možnost, jak načíst neodpovídající symboly.

Pokud vytvoříte knihovnu z objektů, které byly zkompilovány pomocí /Zi, musí být přidružený soubor PDB k dispozici, když je knihovna propojena s programem. To znamená, že pokud knihovnu distribuujete, musíte také distribuovat soubor PDB. Chcete-li vytvořit knihovnu obsahující informace o ladění bez použití souborů PDB, musíte vybrat /Z7 možnost. Pokud použijete možnosti předkompilovaných hlaviček, informace o ladění pro předkompilovanou hlavičku i zbytek zdrojového kódu se umístí do souboru PDB.

/ZI

Tato /ZI možnost je podobná /Zi, ale vytvoří soubor PDB ve formátu, který podporuje funkci Upravit a pokračovat . Chcete-li použít funkce ladění Upravit a pokračovat, musíte použít tuto možnost. Funkce Upravit a pokračovat je užitečná pro produktivitu vývojářů, ale může způsobovat problémy s velikostí kódu, výkonem a souladem kompilátoru. Vzhledem k tomu, že většina optimalizací není kompatibilní s funkcemi Upravit a Pokračovat, použití /ZI zakáže všechny #pragma optimize příkazy v kódu. Tato /ZI možnost je také nekompatibilní s použitím __LINE__ předdefinovaného makra. Kód zkompilovaný /ZI pomocí nelze použít __LINE__ jako argument šablony bez typu, i když __LINE__ se dá použít v rozšířeních maker.

Tato /ZI možnost vynutí /Gy , aby se při kompilaci použily možnosti (Povolit propojení na úrovni funkce) i /FC (úplná cesta k souboru zdrojového kódu v diagnostice ).

/ZI je nekompatibilní s /clr kompilací modulu Common Language Runtime.

Poznámka:

Tato /ZI možnost je dostupná pouze v kompilátorech, které cílí na procesory x86 a x64. Tato možnost kompilátoru není dostupná v kompilátorech, které cílí na procesory ARM.

Nastavení tohoto parametru kompilátoru ve vývojovém prostředí Visual Studio

  1. Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.

  2. Vyberte stránku vlastností konfigurace>C/C++>Obecné.

  3. Upravte vlastnost Formát informací o ladění. Kliknutím na OK uložte provedené změny.

Programové nastavení tohoto parametru kompilátoru

Viz také

Možnosti kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC