Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A C++-projektek szerkesztése és folytatása a kódmódosítások legtöbb típusát kezeli. Egyes módosítások azonban nem alkalmazhatók a program végrehajtása során. A módosítások alkalmazásához le kell állítania a végrehajtást, és létre kell készítenie a kód egy új verzióját.
A C++ szerkesztésével és folytatásával kapcsolatos információkért tekintse meg a Szerkesztés és folytatás (C++) szakaszt a Visual Studióban.
Requirements
Felépítési beállítások (Projekt tulajdonságok >)
C/C++ > Általános > hibakeresési információformátum: Programadatbázis szerkesztéshez és folytatáshoz (
/ZI)Csatoló > Általános > Növekményes csatolás engedélyezése: Igen (
/INCREMENTAL)Az inkompatibilis csatolási beállítások (például
/SAFESEH... vagy/OPT:...) okozhatják az LNK4075 figyelmeztetést a buildelés során. Példa:LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/OPT:ICF' specification
Hibakereső beállításai (Hibakeresési > beállítások)
Nyissa meg a Hibakeresés (vagy Eszközök) >Beállítások panelt, és bontsa ki az Összes beállítás>hibakeresés .NET>/C++ Hot Reload szakaszt.
Nyissa meg a Hibakeresés (vagy Eszközök) >Beállítások párbeszédpanelt, és bontsa ki a Hibakeresés>.NET/C++ Hot Reload szakaszt.
A funkció engedélyezéséhez válassza az alábbi lehetőségek egyikét vagy mindegyikét:
Hot Reload engedélyezése: Engedélyezi a Hot Reload funkciót, amikor a hibakereső csatlakozik (F5).
Gyakori elérésű újratöltés engedélyezése hibakeresés nélküli indításkor: Engedélyezi a gyakori elérésű újratöltést, ha a hibakereső nincs csatlakoztatva (Ctrl + F5).
Gyakori elérésű újratöltés engedélyezése fájlmentéskor: Engedélyezi a gyakori újratöltést a fájl mentésekor.
Naplózás részletessége: Adja meg a naplózás szintjét, ha a Hot Reload engedélyezve van. Válasszon a Minimális (alapértelmezett), a Részletes vagy a Diagnosztikai lehetőség közül.
Ezeknek a beállításoknak a módosítása minden olyan projektet érint, amelyen dolgozik. A beállítások módosítása után nem kell újraépítenie az alkalmazást. Ha a parancssorból vagy egy makefile-ból hozza létre az alkalmazást, de hibakeresést hajt végre a Visual Studio-környezetben, akkor is használhatja a Szerkesztés és a Folytatás lehetőséget, ha be van állítva a /ZI beállítás.
Nem támogatott módosítások
A hibakeresési munkamenetek során a következő C/C++ módosítások nem alkalmazhatók. Ha bármelyik módosítást végrehajtotta, majd megpróbál kódmódosításokat alkalmazni, hibaüzenet vagy figyelmeztető üzenet jelenik meg a Kimenet ablakban.
A globális vagy statikus adatok változásainak többsége.
A más gépről másolt és nem helyileg létrehozott végrehajtható elemek módosítása.
Olyan adattípus módosítása, amely befolyásolja egy objektum elrendezését, például egy osztály adattagjainak.
Több mint 64 000 bájtnyi új kód vagy adat hozzáadása.
Olyan változók hozzáadása, amelyek konstruktort igényelnek az utasításmutató előtt egy ponton.
A futásidejű inicializálást igénylő kódot érintő módosítások.
Kivételkezelők hozzáadása bizonyos esetekben.
Erőforrásfájlok módosítása.
A csak olvasható fájlokban lévő kód módosítása.
A kód módosítása a megfelelő PDB-fájl nélkül.
Olyan kód módosítása, amely nem rendelkezik objektumfájllal.
A lambdas módosítása a következő forgatókönyvekben:
- Ha egy lambda-függvénynek statikus vagy globális tagja van.
- Amikor lambdákat ad át egy
std::function-nek. Ez a módszer valódi ODR-szabálysértést okoz, és C1092-t eredményez.
A Szerkesztés és folytatás nem frissíti a statikus kódtárakat. Ha módosít egy statikus kódtárat, a végrehajtás a régi verzióval folytatódik, és nincs figyelmeztetés.
Nem támogatott forgatókönyvek
A C/C++ szerkesztése és folytatása a következő hibakeresési forgatókönyvekben nem érhető el:
A /Zo használatával lefordított natív alkalmazások hibakeresése (optimalizált hibakeresés javítása)
Az MSVC v120 eszközkészletet és a C/C++
/bigobjkapcsolót használó projektek. Csak az MSVC v140 és újabb fordítóeszközök támogatják az "Edit and Continue" funkciót a/bigobj-val.Vegyes módú (natív/felügyelt) hibakeresés.
JavaScript-hibakeresés.
SQL-hibakeresés.
Memóriaképfájl hibakeresése.
Kód szerkesztése egy nem kezelt kivétel bekövetkezése után, amikor a nem kezelt kivételeknél a hívásverem visszatekerése opció nincs kiválasztva.
Az alkalmazás hibakereséséhez használja a Csatolás parancsot az alkalmazás futtatása helyett a Hibakeresés menü Start elemére kattintva.
Optimalizált kód hibakeresése.
A kód egy régi verziójának hibakeresése, miután egy új verzió összeállítása sikertelen volt a buildelési hibák miatt.
Egyéni fordító (cl.exe) elérési útjának használata. Biztonsági okokból a Visual Studio mindig a telepített fordítót használja a fájlok szerkesztés és folytatás során történő újrafordításához. Ha egyéni fordítóútvonalat használ (például egy egyéni
$(ExecutablePath)változón keresztül a*.propsfájlban), figyelmeztetés jelenik meg, és a Visual Studio visszatér ugyanahhoz a verzióhoz/architektúrához tartozó telepített fordítóhoz.Örökölt architektúrák/MSVC-eszközkészletek. Az MSVC v140-eszközkészlettel az alapértelmezett hibakereső támogatja az X86- és X64-alkalmazások szerkesztését és folytatását. Az örökölt eszközkészletek csak az X86-alkalmazásokat támogatják. Az MSVC v120-nál régebbi eszközkészleteknek az örökölt hibakeresőt kell használniuk a "Hibakeresési > beállítások > általános > Natív kompatibilitási mód használata" bejelölésével a Szerkesztés és folytatás funkció használatához.
IDL-attribútumok korlátozásai
A Szerkesztés és folytatás nem hozza létre újra az interfészdefiníciós nyelvi (IDL) fájlokat. Ezért az IDL-attribútumok módosításai nem jelennek meg a hibakeresés során. Az IDL-attribútumok módosításainak eredményének megtekintéséhez le kell állítania a hibakeresést és újra kell építenie az alkalmazást. A Szerkesztés és a Folytatás nem okoz hibát vagy figyelmeztetést, ha az IDL-attribútumok megváltoztak. További információ: IDL-attribútumok.
Problémák diagnosztizálása
Ha a forgatókönyv nem felel meg a fent említett feltételeknek, a következő DWORD beállításjegyzék-érték beállításával további adatokat gyűjthet:
Nyisson meg egy fejlesztői parancssort.
Futtassa a következő parancsot:
VsRegEdit.exe set “C:\Program Files\Microsoft Visual Studio\[Version]\[YOUR EDITION]” HKCU Debugger NativeEncDiagnosticLoggingLevel DWORD 1
A hibakeresési munkamenet elején ennek az értéknek a beállítása a Szerkesztés és Folytatás különböző összetevőit arra készteti, hogy részletes naplózást végezzenek a Kimeneti ablak>hibakeresés panelen.