/Z7, /Zi( /ZI Hibakeresési információformátum)

A /Z7, /Ziés /ZI fordító beállításai határozzák meg a programhoz létrehozott hibakeresési információk típusát, valamint azt, hogy ezek az információk objektumfájlokban vagy programadatbázis-fájlban (PDB) vannak-e tárolva.

Szemantika

/Z7
/Zi
/ZI

Megjegyzések

Hibakeresési beállítás megadásakor a fordító szimbólumneveket hoz létre a függvényekhez és változókhoz, írja be az információkat és a sorhelyeket a hibakereső számára. Ez a szimbolikus hibakeresési információ szerepelhet a fordító által létrehozott objektumfájlokban (.obj fájlokban), vagy egy külön PDB-fájlban (fájlban .pdb ) a végrehajtható fájlban. A hibakeresési információformátum beállításait a következő szakaszok ismertetik.

Nincs

Alapértelmezés szerint, ha nincs megadva hibakeresési információformátum-beállítás, a fordító nem hoz létre hibakeresési információkat, így a fordítás gyorsabb.

/Z7

A /Z7 beállítás olyan objektumfájlokat hoz létre, amelyek teljes szimbolikus hibakeresési információkat is tartalmaznak a hibakeresővel való használatra. Ezek az objektumfájlok és az ezekből létrehozott tárak lényegesen nagyobbak lehetnek, mint azok a fájlok, amelyek nem rendelkeznek hibakeresési információkkal. A szimbolikus hibakeresési információk tartalmazzák a változók, függvények és vonalszámok nevét és típusát. A fordító nem hoz létre PDB-fájlt. A PDF-fájl azonban továbbra is létrehozható ezekből az objektumfájlokból vagy tárakból, ha a hivatkozáskezelő megfelel a /DEBUG lehetőségnek.

A külső kódtárak hibakeresési verzióinak terjesztői számára előnyös, ha nem rendelkezik PDB-fájllal. Az előre lefordított fejlécek objektumfájljaira azonban szükség van a kódtár csatolási fázisában és a hibakereséshez. Ha az objektumfájlban .pch csak a típusinformációk (és nincs kód) szerepel, akkor a /Yl kódtár létrehozásakor a (PCH-referencia beszúrása hibakeresési kódtárhoz) beállítást is használnia kell, amely alapértelmezés szerint engedélyezve van.

Ha meg van adva, az elavult /Gm (Minimális újraépítés engedélyezése) beállítás nem érhető el /Z7 .

/Zi

A /Zi beállítás egy külön PDB-fájlt hoz létre, amely tartalmazza a hibakeresővel való használathoz szükséges összes szimbolikus hibakeresési információt. A hibakeresési információk nem szerepelnek az objektumfájlokban vagy a végrehajtható fájlokban, ami sokkal kisebbé teszi őket.

/Zi A használat nem befolyásolja az optimalizálást. Ez azonban azt jelenti, /Zi hogy /debug. További információ: /DEBUG (Hibakeresési információ létrehozása).

Ha mindkettőt /Zi/clrmegadja, az DebuggableAttribute attribútum nem kerül a szerelvény metaadatai közé. Ha szeretné, meg kell adnia a forráskódban. Ez az attribútum befolyásolhatja az alkalmazás futtatókörnyezeti teljesítményét. Ha többet szeretne tudni arról, hogy az attribútum hogyan befolyásolja a Debuggable teljesítményt, és hogyan módosíthatja a teljesítményhatást, olvassa el a Kép könnyebb hibakeresése című témakört.

A fordító elnevezi a PDB-fájlt <project>.pdb, ahol <project> a projekt neve szerepel. Ha projekten kívüli fájlt fordít le, a fordító létrehoz egy PDB-fájlt, VC<x>.pdbamely <x> a használt fordítóverzió fő- és alverziószámának összefűzése. A fordító beágyazza a PDB nevét és egy azonosító időbélyeggel ellátott aláírást minden objektumfájlba, amelyet ezzel a beállítással hoztak létre. Ez a név és aláírás a hibakeresőt a szimbolikus és a vonalszámadatok helyére mutatja. A PDB-fájlban lévő névnek és aláírásnak meg kell egyeznie a hibakeresőbe betöltendő szimbólumok végrehajtható nevével és aláírásával. A WinDBG-hibakereső a parancs használatával betöltheti a .symopt+0x40 nem egyező szimbólumokat. A Visual Studio nem rendelkezik hasonló lehetőséggel az eltérő szimbólumok betöltéséhez.

Ha olyan objektumokból hoz létre tárat, amelyeket a program lefordított /Zi, a társított PDB-fájlnak elérhetőnek kell lennie, amikor a tár egy programhoz van csatolva. Ez azt jelenti, hogy ha terjeszti a tárat, akkor a PDB-fájlt is el kell osztania. Ha pdf-fájlok használata nélkül szeretne hibakeresési információkat tartalmazó tárat létrehozni, válassza a /Z7 lehetőséget. Ha az előre összeállított fejlécbeállításokat használja, az előre összeállított fejléc és a forráskód többi részének hibakeresési információi is bekerülnek a PDB-fájlba.

/ZI

A /ZI beállítás hasonló /Zi, de a Szerkesztés és a Folytatás funkciót támogató formátumban hoz létre EGY PDF-fájlt. A Szerkesztés és a Hibakeresés folytatása funkció használatához ezt a lehetőséget kell használnia. A Szerkesztés és folytatás funkció hasznos a fejlesztői hatékonysághoz, de problémákat okozhat a kódméretben, a teljesítményben és a fordítók megfelelőségében. Mivel a legtöbb optimalizálás nem kompatibilis a Szerkesztés és a Folytatás funkcióval, a kódban /ZI lévő utasítások #pragma optimize letiltása. Ez /ZI a beállítás nem kompatibilis az __LINE__ előre definiált makróval is; a nem típussablon argumentumaként lefordított /ZI kód nem használható __LINE__ , bár __LINE__ makróbővítésekben is használható.

A /ZI beállítás a fordításban a/Gy (Function-Level csatolás engedélyezése) és /FC a (Teljes forráskódfájl elérési útja a diagnosztika szolgáltatásban) beállítás használatát is kényszeríti.

/ZInem kompatibilis a (Common Language Runtime Compilation) szolgáltatással/clr.

Megjegyzés:

Ez /ZI a lehetőség csak az x86- és x64-processzorokat célzó fordítókban érhető el. Ez a fordítóbeállítás nem érhető el az ARM-processzorokat célzó fordítókban.

A fordító beállításának beállítása a Visual Studio fejlesztői környezetében

  1. Nyissa meg a projekt Tulajdonságlapok párbeszédpanelt. További információ: C++ fordító és buildtulajdonságok beállítása a Visual Studióban.

  2. Válassza a Configuration Properties>C/C++>General tulajdonságlapot.

  3. Módosítsa a Hibakeresési információformátum tulajdonságot . A módosítások mentéséhez válassza az OK lehetőséget.

A fordító beállításának beállítása projektfájlban

Ha egy projektfájlban .vcxproj szeretné beállítani a hibakeresési információ formátumát, használja az <DebugInformationFormat> elemdefiníción belüli <ClCompile> tulajdonságot. Az alábbi táblázat az MSBuild XML-értékeket és azok megfelelő fordítóbeállításait mutatja be:

MSBuild XML-érték Fordító beállítás Leírás
None (nincs) Nincs hibakeresési információ
OldStyle /Z7 Teljes szimbolikus hibakeresési információ .obj fájlokba ágyazva, PDF-fájl nélkül
ProgramDatabase /Zi Programadatbázis (PDB)
EditAndContinue /ZI PDB szerkesztési és folytatási támogatással

Ha például a hibakeresési információs formátumot úgy szeretné beállítani, hogy egy kiadási konfigurációban programozza az adatbázist:

<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
  <ClCompile>
    <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
  </ClCompile>
</ItemDefinitionGroup>

A fordítóprogram programozott beállítása

Lásd még

MSVC-fordító beállításai
MSVC-fordító parancssori szintaxisa