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


Gyakori újratöltés (C++)

A C++-projektekben használhatja a gyakori újratöltést( korábbi nevén Szerkesztés és folytatás). A funkció korlátozásairól további információt a támogatott kódmódosítások (C++) című témakörben talál.

A /Zo (Enhance Optimized Debugging) fordítóbeállítás további információkat ad hozzá a .pdb (szimbólum) fájlokhoz a /Od (Letiltás (Hibakeresés)) lehetőség nélkül lefordított bináris fájlokhoz.

Ez a /Zo beállítás letiltja a Hot Reload lehetőséget (korábbi nevén Szerkesztés és Folytatás), az Optimalizált kód hibakeresése című cikkben leírtak szerint.

Azonnali újratöltés engedélyezése vagy letiltása

Ha olyan kódot szerkeszt, amelyet az aktuális hibakeresési munkamenet során nem szeretne alkalmazni, letilthatja a Hot Reload automatikus indítását. Szükség szerint újra engedélyezheti az automatikus gyorstöltést.

Fontos

A szükséges buildbeállításokról és a funkciókompatibilitásról további információt a C++ Szerkesztés és folytatás a Visual Studio 2015 3. frissítésében talál.

  1. Ha jelenleg hibakeresési munkamenetben van, állítsa le a hibakeresést (Shift + F5).
  1. Nyissa meg az Eszközök>beállítások ablakot, és bontsa ki a Minden beállítás>hibakeresés>.NET/C++ Gyors újratöltés szakaszt.

  2. Ha engedélyezni szeretné a gyakori elérésű újratöltést a hibakereső csatolásával (F5) kezdődően, jelölje be a jobb oldali panelen a Gyakori elérésű újratöltés engedélyezése jelölőnégyzetet.

    A jelölőnégyzet bejelölése után a következő beállításokat konfigurálhatja:

    Gyors újratöltés lehetőség Description Alapértelmezett
    Módosítások automatikus alkalmazása a folytatásra (csak natív) A módosításokat akkor alkalmazza, ha továbbra is csatlakozik a hibakeresőhöz (F5). Enabled
    Figyelmeztetés elavult kódról Figyelmeztetést tesz lehetővé, ha a hibakereső olyan kóddal találkozik, amelyet módosítottak, de nem lehet azonnal alkalmazni. Enabled
    Engedélyezés, ha nem történik hibakeresés Engedélyezi a Hot Reload funkciót, amikor a hibakereső nincs csatlakoztatva (Ctrl + F5). Enabled
    Alkalmazás fájlmentésre Módosítások alkalmazása a fájl mentésekor. Disabled
    Naplózás részletessége Adja meg a naplózás szintjét, ha az Éles újratöltés engedélyezve van. Válasszon a Minimális, Részletes vagy Diagnosztikai lehetőségek közül. Minimális
  1. Nyissa meg az Eszközök>Beállítások párbeszédpanelt, és bontsa ki a Debugging>.NET/C++ forró újratöltés szakaszt.

  2. 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.

  3. Kattintson az OK gombra.

Kódmódosítások explicit alkalmazása

A C++ programozási nyelvben a Hot Reload kétféleképpen alkalmazhatja a kódmódosításokat. A kódmódosítások implicit módon alkalmazhatók, ha végrehajtási parancsot választ, vagy explicit módon a Kódmódosítások alkalmazása parancsot használja.

Amikor explicit módon alkalmazza a kódmódosításokat, a program szünet módban marad – nem történik végrehajtás.

  • A kódmódosítások explicit alkalmazásához a Hibakeresés menüben válassza a Kódmódosítások alkalmazása lehetőséget.

Kódmódosítások leállítása

Miközben a Hot Reload a kódmódosításokat alkalmazza, leállíthatja a műveletet.

Kódmódosítások alkalmazásának leállítása:

  • A Hibakeresés menüben válassza a Kódmódosítások alkalmazásának leállítása lehetőséget.

    Ez a menüelem csak kódmódosítások alkalmazásakor látható.

    Ha ezt a lehetőséget választja, a kódmódosítások egyike sem lesz véglegesített.

A végrehajtási pont alaphelyzetbe állítása

Egyes kódmódosítások miatt a végrehajtási pont áthelyeződhet egy új helyre, amikor a Hot Reload alkalmazza a módosításokat. A funkció a lehető legpontosabban helyezi el a végrehajtási pontot, de előfordulhat, hogy az eredmények nem minden esetben helyesek.

A C++-ban egy párbeszédpanel tájékoztatja, hogy mikor változik a végrehajtási pont. A hibakeresés folytatása előtt ellenőriznie kell, hogy a hely helyes-e. Ha nem helyes, használja a Következő utasítás beállítása parancsot. További információ: A következő végrehajtandó utasítás beállítása.

Elavult kód használata

Bizonyos esetekben előfordulhat, hogy a Hot Reload nem tudja azonnal alkalmazni a kódmódosításokat a végrehajtható fájlra, de később sikerülhet alkalmaznia a kódmódosításokat, ha folytatja a hibakeresést. Ez a forgatókönyv akkor fordul elő, ha olyan függvényt szerkeszt, amely meghívja az aktuális függvényt, vagy ha több mint 64 bájtnyi új változót ad hozzá egy függvényhez a hívásveremen.

Ilyen esetekben a hibakereső mindaddig végrehajtja az eredeti kódot, amíg a módosítások nem alkalmazhatók. Az elavult kód ideiglenes forrásfájlként jelenik meg egy külön forrásablakban, egy olyan címmel, mint a enc25.tmp. A szerkesztett forrás továbbra is megjelenik az eredeti forrásablakban. Ha megkísérli szerkeszteni az elavult kódot, megjelenik egy figyelmeztető üzenet.