Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Alternativen /Z7, /Zi, och /ZI kompilatorn anger typen av felsökningsinformation som skapats för ditt program och om den här informationen sparas i objektfiler eller i en programdatabasfil (PDB).
Syntax
/Z7
/Zi
/ZI
Anmärkningar
När du anger ett felsökningsalternativ skapar kompilatorn symbolnamn för funktioner och variabler, typinformation och radplatser som ska användas av felsökningsprogrammet. Den här symboliska felsökningsinformationen kan inkluderas antingen i objektfilerna (.obj filerna) som skapas av kompilatorn eller i en separat PDB-fil (en .pdb fil) för den körbara filen. Alternativen för felsökningsinformationsformat beskrivs i följande avsnitt.
Ingen
Om inget alternativ för felsökningsinformationsformat har angetts genererar kompilatorn som standard ingen felsökningsinformation, så kompilering går snabbare.
/Z7
Alternativet /Z7 skapar objektfiler som också innehåller fullständig symbolisk felsökningsinformation för användning med felsökningsprogrammet. Dessa objektfiler och bibliotek som skapats från dem kan vara betydligt större än filer som inte har någon felsökningsinformation. Den symboliska felsökningsinformationen innehåller namn och typer av variabler, funktioner och radnummer. Ingen PDB-fil skapas av kompilatorn. En PDB-fil kan dock fortfarande genereras från dessa objektfiler eller bibliotek om länkaren godkänns./DEBUG
För distributörer av felsökningsversioner av bibliotek från tredje part finns det en fördel med att inte ha en PDB-fil. Objektfilerna för alla förkompilerade huvuden är dock nödvändiga under bibliotekslänkfasen och för felsökning. Om det bara finns typinformation (och ingen kod) i .pch objektfilen måste du också använda /Yl alternativet (Inject PCH Reference for Debug Library), som är aktiverat som standard, när du skapar biblioteket.
Det inaktuella /Gm alternativet (Aktivera minimal ombyggnad) är inte tillgängligt när /Z7 det har angetts.
/Zi
Alternativet /Zi skapar en separat PDB-fil som innehåller all symbolisk felsökningsinformation som ska användas med felsökningsprogrammet. Felsökningsinformationen ingår inte i objektfilerna eller den körbara filen, vilket gör dem mycket mindre.
Användning av /Zi påverkar inte optimeringar. Innebär /debugdock /Zi . Mer information finns i /DEBUG (Generera felsökningsinformation).
När du anger både /Zi och /clrDebuggableAttribute placeras inte attributet i sammansättningsmetadata. Om du vill ha det måste du ange det i källkoden. Det här attributet kan påverka programmets körningsprestanda. Mer information om hur Debuggable attributet påverkar prestanda och hur du kan ändra prestandapåverkan finns i Göra en bild enklare att felsöka.
Kompilatorn namnger PDB-filen <project>.pdb, där <project> är namnet på projektet. Om du kompilerar en fil utanför ett projekt skapar kompilatorn en PDB-fil med namnet VC<x>.pdb, där <x> är en sammanlänkning av huvud- och delversionsnumret för den kompilatorversion som används. Kompilatorn bäddar in namnet på PDB och en identifierande tidsstämpelsignatur i varje objektfil som skapas med det här alternativet. Det här namnet och signaturen pekar felsökningsprogrammet på platsen för symbolisk information och radnummerinformation. Namnet och signaturen i PDB-filen måste matcha den körbara filen för att symboler ska läsas in i felsökningsprogrammet. WinDBG-felsökaren kan läsa in felmatchade symboler med hjälp .symopt+0x40 av kommandot . Visual Studio har inget liknande alternativ för att läsa in felmatchade symboler.
Om du skapar ett bibliotek från objekt som kompilerats med måste /Ziden associerade PDB-filen vara tillgänglig när biblioteket är länkat till ett program. Det innebär att om du distribuerar biblioteket måste du även distribuera PDB-filen. Om du vill skapa ett bibliotek som innehåller felsökningsinformation utan att använda PDB-filer måste du välja alternativet /Z7 . Om du använder de förkompilerade sidhuvudalternativen placeras felsökningsinformation för både det förkompilerade huvudet och resten av källkoden i PDB-filen.
/ZI
Alternativet /ZI liknar /Zi, men det skapar en PDB-fil i ett format som stöder funktionen Redigera och Fortsätt . Om du vill använda funktionerna Redigera och Fortsätt felsökning måste du använda det här alternativet. Funktionen Redigera och fortsätt är användbar för utvecklares produktivitet, men kan orsaka problem med kodstorlek, prestanda och kompilatorkonformitet. Eftersom de flesta optimeringar är inkompatibla med Redigera och Fortsätt inaktiverar användningen /ZI alla #pragma optimize instruktioner i koden. Alternativet /ZI är också inkompatibelt med användning av det __LINE__ fördefinierade makrot. Kod som kompileras med /ZI kan inte användas __LINE__ som ett mallargument som inte är av typen, även om __LINE__ det kan användas i makroexpansioner.
Alternativet /ZI tvingar både /Gy alternativen (Aktivera Function-Level Länkning) och /FC (fullständig sökväg till källkodsfil i diagnostik) att användas i kompilering.
/ZI är inte kompatibelt med /clr (Common Language Runtime-kompilering).
Anmärkning
Alternativet /ZI är endast tillgängligt i kompilatorerna som riktar sig till x86- och x64-processorer. Det här kompilatoralternativet är inte tillgängligt i kompilatorerna som riktar in sig på ARM-processorer.
Ange det här kompilatoralternativet i Visual Studio-utvecklingsmiljön
Öppna dialogrutan egenskapssidor för projektet. Mer information finns i Ange C++-kompilator- och byggegenskaper i Visual Studio.
Välj egenskapssidan Konfigurationsegenskaper>C/C++>Allmänt .
Ändra egenskapen Felsök informationsformat . Spara ändringarna genom att välja OK .
Så här anger du det här kompilatoralternativet i en projektfil
Om du vill ange felsökningsinformationsformatet i en .vcxproj projektfil använder du <DebugInformationFormat> egenskapen i en <ClCompile> objektdefinition. I följande tabell visas MSBuild XML-värdena och deras motsvarande kompilatoralternativ:
| MSBuild XML-värde | Kompilatoralternativ | Beskrivning |
|---|---|---|
None |
(ingen) | Ingen felsökningsinformation |
OldStyle |
/Z7 |
Fullständig symbolisk felsökningsinformation inbäddad i .obj filer, inget PDB |
ProgramDatabase |
/Zi |
Programdatabas (PDB) |
EditAndContinue |
/ZI |
PDB med stöd för Redigera och Fortsätt |
Om du till exempel vill ange felsökningsinformationsformatet till programdatabasen i en versionskonfiguration:
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
</ItemDefinitionGroup>
Så här ställer du in det här kompilatoralternativet programmatiskt
- Se även DebugInformationFormat.
Se även
MSVC-kompilatoralternativ
Kommandoradssyntax för MSVC-kompilatorn