Udostępnij za pomocą


/dynamicdeopt (włącz debugowanie dynamiczne języka C++) (wersja zapoznawcza)

Ważne

Przełącznik kompilatora /dynamicdeopt jest obecnie w wersji ZAPOZNAWCZEJ. Te informacje odnoszą się do funkcji wersji wstępnej, która może zostać znacząco zmodyfikowana przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, wyrażonych ani domniemanych, w odniesieniu do podanych tutaj informacji.

Włącz debugowanie dynamiczne w języku C++ (wersja zapoznawcza), aby można było debugować zoptymalizowany kod tak, jakby został skompilowany i krok w dowolnym miejscu z deoptymalizacją funkcji na żądanie.

Składnia

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

Argumenty (w programowaniu)

suffix
Określ rozszerzenie pliku dla zdezoptymalizowanego danych wyjściowych.

Bez opcji i podanej test.cpp jako danych wejściowych dane wyjściowe obejmują test.obj, test.exei test.pdb, a także test.alt.obj, test.alt.exei test.alt.pdb. Ten przełącznik umożliwia zmianę sufiksu niezoptymalizowanego binarnego artefaktów kompilacji z .alt na coś innego. Jeśli zmienisz sufiks, wszystkie pliki muszą używać nowego sufiksu i musi być zgodne z nazwą przekazaną do konsolidatora przy użyciu /dynamicdeopt:suffix (wersja zapoznawcza). Zazwyczaj nie używasz tego przełącznika, chyba że musisz uniknąć kolizji nazw plików z innymi plikami, które masz.

sync
Kompiluje zdezoptymalizowane dane wyjściowe po utworzeniu zoptymalizowanych danych wyjściowych zamiast równolegle. Domyślnie kompilator duplikuje równoległe wystąpienie generatora kodu. Ten przełącznik sprawia, że są uruchamiane szeregowo. Ten przełącznik jest dostarczany w przypadku, gdy lepiej odpowiada twojemu środowisku kompilacji.

Uwagi

Ta flaga w wersji zapoznawczej, dostępna od programu Visual Studio 2022 w wersji 17.14 (wersja zapoznawcza 2), dotyczy tylko projektów x64 i musi być używana z odpowiednią flagą konsolidatora, /DYNAMICDEOPT.

Kompilowanie przy użyciu /dynamicdeopt generuje inne pliki binarne używane do debugowania. Podczas debugowania zoptymalizowanej funkcji w zoptymalizowanym pliku debuger przechodzi do alternatywnego pliku binarnego. Dzięki temu można debugować tak, jakby debugować niezoptymalizowany kod, jednocześnie uzyskując zalety wydajności zoptymalizowanego kodu.

/dynamicdeopt wymaga:

/DEBUG lub /DEBUG:FULL. Jeśli nie określisz /DEBUGlub jeśli określisz /DEBUG:FASTLINK, konsolidator zwraca błąd krytyczny. Jeśli określisz /INCREMENTAL, kompilator generuje ostrzeżenie i automatycznie wyłącza /INCREMENTAL. Jeśli określisz /OPT:ICF, kompilator generuje ostrzeżenie, że środowisko debugowania nie jest tak dobre. Dzieje się tak, ponieważ usługa ICF może spowodować usunięcie funkcji z pliku alternatywnego, co oznacza, że nie można do nich przejść.

Program IncrediBuild 10.24 obsługuje kompilacje debugowania dynamicznego języka C++.
Program FastBuild w wersji 1.15 obsługuje kompilacje debugowania dynamicznego języka C++.

/dynamicdeopt jest niezgodny z przełącznikami edit-and-continue i następującymi przełącznikami kompilatora:

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

Ustaw tę opcję konsolidatora w środowisku projektowym programu Visual Studio

Ten przełącznik można ustawić w programie Visual Studio. Aby uzyskać więcej informacji, zobacz debugowanie dynamiczne języka C++ (wersja zapoznawcza). Istnieje możliwość ustawienia przełącznika w programie Visual Studio, ponieważ program MSBuild automatycznie pomija niektóre niezgodne przełączniki, takie jak /GL i /OPT:ICF. Ustawia również odpowiednią opcję konsolidatora (/DYNAMICDEOPT). Przełącznik można również ustawić w wierszu polecenia.

Programowe ustawianie tej opcji kompilatora

Zobacz też

debugowanie dynamiczne języka C++ (wersja zapoznawcza)
Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC