Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Mechanismus Opětovné načítání za provozu, dříve označovaný jako Edit and Continue, zpracovává většinu typů změn kódu. Některé změny se ale nedají použít během provádění programu. Pokud chcete tyto změny použít, musíte zastavit provádění a sestavit novou verzi kódu.
Informace o práci s Opětovné načítání za provozu pro jazyk C++ v Visual Studio najdete v tématu Opětovné načítání za provozu (C++).
Požadavky
Nastavení kompilace (Vlastnosti projektu > )
C/C++ > Obecný > formát informací o ladění: Programová databáze pro úpravy a pokračování (
/ZI)Linker > Obecné > povolení přírůstkového propojení: Ano (
/INCREMENTAL)Jakékoli nekompatibilní nastavení linkeru (například
/SAFESEH, nebo/OPT:...) může způsobit upozornění LNK4075 během sestavování. Příklad:LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/OPT:ICF' specification
Nastavení ladicího programu (možnosti ladění > )
Otevřete podokno Debug (nebo Nástroje) >Možnosti, a rozbalte část Všechna nastavení>Debugging>.NET/C++ Za tepla.
Otevřete dialogové okno ladění (nebo nástroje) >Možnosti a rozbalte část ladění>.NET/C++ Rychlé načtení.
Pokud chcete tuto funkci povolit, vyberte jednu nebo všechny následující možnosti:
Povolit opětovné načítání za provozu: Povolí opětovné načítání za provozu při spuštění s připojeným ladicím programem (F5).
Povolit Opětovné načítání za provozu při spuštění bez ladění: Povolí Opětovné načítání za provozu při spuštění bez připojeného ladicího programu (Ctrl + F5).
Povolit Opětovné načítání za provozu při uložení souboru: Povolí Opětovné načítání za provozu při uložení souboru.
Úroveň podrobnosti protokolování: Nastavte úroveň podrobnosti protokolování, když je povolené Opětovné načítání za provozu. Zvolte možnost Minimální (výchozí), Podrobná nebo Diagnostická.
Změna těchto nastavení ovlivní všechny projekty, na které pracujete. Po změně nastavení nemusíte aplikaci znovu sestavit. Pokud aplikaci sestavíte z příkazového řádku nebo ze souboru pravidel, ale ladíte ji v prostředí sady Visual Studio, můžete i přesto použít příkaz Upravit a pokračovat, pokud nastavíte /ZI možnost.
Nepodporované změny
Následující změny C/C++ nelze použít během relace ladění. Pokud provedete některou z těchto změn a pokusíte se použít změny kódu, zobrazí se v okně Výstup chybová zpráva nebo upozornění.
Většina změn globálních nebo statických dat
Změny spustitelných souborů, které se kopírují z jiného počítače a nejsou sestaveny místně.
Změny datového typu, které ovlivňují rozložení objektu, například datových členů třídy.
Přidání více než 64 tisíc bajtů nového kódu nebo dat
Přidání proměnných, které vyžadují konstruktor v bodě před ukazatelem instrukce.
Změny, které mají vliv na kód vyžadující inicializaci za běhu
Přidání obslužných rutin výjimek v některých případech
Změny souborů prostředků
Změny kódu v souborech jen pro čtení.
Změny kódu bez odpovídajícího souboru PDB.
Změny kódu, který neobsahuje žádný soubor objektu.
Úpravy lambda v následujících scénářích:
- Pokud mají lambda statického nebo globálního člena.
- Když předáte lambdy do
std::function. Tato metoda způsobuje skutečné porušení ODR a vede k C1092.
Opětovné načítání za provozu neaktualizuje statické knihovny. Pokud provedete změnu ve statické knihovně, provádění pokračuje ve staré verzi a nevystaví se žádné upozornění.
Nepodporované scénáře
Opětovné načítání za provozu pro C/C++ není k dispozici v následujících scénářích ladění:
Ladění nativních aplikací zkompilovaných pomocí /Zo (vylepšení optimalizovaného ladění)
Projekty, které používají sadu nástrojů MSVC v120 a přepínač C/C++
/bigobj. Funkce Editovat a pokračovat/bigobjje podporována pouze v nástrojích pro sestavení MSVC v140 a novějších.Ladění ve smíšeném režimu (nativní nebo spravované)
Ladění JavaScriptu
Ladění SQL
Ladění souboru s výpisem paměti
Úpravy kódu po neošetřené výjimce, pokud není vybrána možnost Unwind the call stack on unhandled exceptions.
Ladění aplikace pomocí připojení namísto spuštění aplikace pomocí Spustit v nabídce Ladění.
Ladění optimalizovaného kódu
Ladění staré verze kódu poté, co se novou verzi nepodařilo sestavit kvůli chybám při sestavování.
Použití vlastní cesty kompilátoru (cl.exe) Z bezpečnostních důvodů Visual Studio při rekompilace souboru během Opětovné načítání za provozu vždy používá nainstalovaný kompilátor. Pokud používáte vlastní cestu kompilátoru (například prostřednictvím vlastní
$(ExecutablePath)proměnné v*.propssouboru), zobrazí se upozornění a Sada Visual Studio se vrátí k použití nainstalovaného kompilátoru stejné verze nebo architektury.Starší architektury / sady nástrojů MSVC S nástroji MSVC v140 výchozí debugger podporuje Opětovné načítání za provozu pro aplikace X86 i X64. Starší sady nástrojů podporují pouze aplikace X86. Sady nástrojů starší než MSVC v120 by měly používat starší ladicí program tak, že zaškrtnete "Možnosti > ladění > Obecné > Použít nativní režim kompatibility", aby bylo možné použít Upravit a pokračovat.
Omezení atributů IDL
Opětovné načítání za provozu nevygeneruje soubory jazyka IDL (Interface Definition Language). Změny atributů IDL se proto při ladění neprojeví. Pokud chcete zobrazit výsledek změn atributů IDL, musíte zastavit ladění a znovu sestavit aplikaci. Opětovné načítání za provozu negeneruje chybu nebo upozornění, pokud se změnily atributy IDL. Další informace naleznete v tématu Atributy IDL.
Diagnostika problémů
Pokud váš scénář nevyhovuje žádné z výše uvedených podmínek, můžete získat další podrobnosti nastavením následující hodnoty registru DWORD:
Otevřete příkazový řádek pro vývojáře.
Spusťte následující příkaz:
VsRegEdit.exe set “C:\Program Files\Microsoft Visual Studio\[Version]\[YOUR EDITION]” HKCU Debugger NativeEncDiagnosticLoggingLevel DWORD 1
Nastavení této hodnoty na začátku ladicí relace způsobí, že různé komponenty Opětovné načítání za provozu vypíší podrobný protokol do podokna Output Window>Debug.