Megosztás a következőn keresztül:


/dynamicdeopt (C++ dinamikus hibakeresés engedélyezése) (előzetes verzió)

Fontos

A /dynamicdeopt fordítókapcsoló jelenleg előzetes verzióban érhető el. Ezek az információk egy előzetes funkcióra vonatkoznak, amely a kiadás előtt jelentősen módosulhat. A Microsoft nem vállal kifejezett vagy hallgatólagos szavatosságot az itt megadott információkra vonatkozóan.

Engedélyezze C++ dinamikus hibakeresési (előzetes verzió), hogy az optimalizált kódot úgy lehessen hibakeresésre használni, mintha optimalizált volna, és igény szerinti függvény-deoptimizálással bárhol elvégezheti a lépéseket.

Szintaxis

/dynamicdeopt
/dynamicdeopt:suffix <suffix>
/dynamicdeopt:sync

Érvek

suffix
Adja meg a deoptimizált kimenet fájlkiterjesztését.

Ha nincs lehetőség, és test.cpp bemenetként, a kimenet tartalmazza a test.obj, test.exeés test.pdb, valamint test.alt.obj, test.alt.exeés test.alt.pdb. Ez a kapcsoló lehetővé teszi a nem optimalizált bináris buildösszetevők utótagjának módosítását .alt-ről valami másra. Ha módosítja az utótagot, minden fájlnak az új utótagot kell használnia, és meg kell egyeznie a hivatkozásnak átadott névvel /dynamicdeopt:suffix (előzetes verzió). Ezt a kapcsolót általában csak akkor használja, ha el kell kerülnie, hogy a fájlnév ütközjön más fájlokkal.

sync
Az optimalizált kimenet párhuzamos helyett az optimalizált kimenet létrehozása után hozza létre az optimalizált kimenetet. Alapértelmezés szerint a fordító párhuzamos példányt hoz létre a kódgenerátorból. Ez a kapcsoló ehelyett soros futtatásra készteti őket. Ez a kapcsoló akkor érhető el, ha ez jobban megfelel a buildkörnyezetnek.

Megjegyzések

Ez a Visual Studio 2022 17.14 Preview 2 verziótól kezdődően elérhető előnézeti jelző csak x64-projektekre vonatkozik, és a megfelelő linkerjelölővel kell használni, /DYNAMICDEOPT.

A /dynamicdeopt összeállítása más, hibakereséshez használt bináris fájlokat hoz létre. Ha optimalizált fájlban hibakeresést hajt végre egy optimalizált fájlban, a hibakereső ehelyett a másodlagos bináris fájlba lép. Ez lehetővé teszi a hibakeresést, mintha nem optimalizált kódot keres, miközben továbbra is kihasználja az optimalizált kód teljesítménybeli előnyeit.

/dynamicdeopt a következőt igényli:

/DEBUG vagy /DEBUG:FULL. Ha nem adja meg a /DEBUG, vagy ha /DEBUG:FASTLINKad meg, a hivatkozás végzetes hibát ad. Ha /INCREMENTALad meg, a fordító figyelmeztetést hoz létre, és automatikusan kikapcsolja /INCREMENTAL. Ha /OPT:ICFad meg, a fordító figyelmeztetést ad arról, hogy a hibakeresési élmény nem olyan jó. Ennek az az oka, hogy az ICF miatt a függvények el lesznek távolítva a helyettesítő fájlból, ami azt jelenti, hogy nem léphet hozzájuk.

Az IncrediBuild 10.24 támogatja a C++ dinamikus hibakeresési buildeket.
A FastBuild 1.15-ös verzió támogatja a C++ dinamikus hibakeresési buildeket.

/dynamicdeopt nem kompatibilis a szerkesztéssel és a folytatással, és a következő fordítókapcsolók váltanak:

/GL
/ZI
/RTC1
/RTCs
/RTCc
/RTCu
/GH
/Gh
/fastcap
/callcap
/ZW
/fsanitize=address
/fsanitize=kernel-address
All of the CLR flags

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

Ezt a kapcsolót a Visual Studióban állíthatja be. További információ: C++ dinamikus hibakeresési (előzetes verzió). A kapcsoló beállítása a Visual Studióban azért előnyös, mert az MSBuild automatikusan letilt néhány nem kompatibilis kapcsolót, például /GL és /OPT:ICF. Emellett beállítja a megfelelő linker lehetőséget (/DYNAMICDEOPT). A kapcsolót a parancssorban is beállíthatja.

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

Lásd még

C++ dinamikus hibakeresési (előzetes verzió)
MSVC-fordító beállításai
MSVC Fordító Command-Line Szintaxis