A Memória ablak használata a Visual Studio hibakeresőjében (C#, C++, Visual Basic, F#)

A hibakeresés során a Memória ablakban látható az alkalmazás által használt memóriaterület.

Az olyan hibakereső ablakok, mint a Watch, Autos, Locals, és a QuickWatch párbeszédpanelen olyan változók láthatók, amelyek a memóriában meghatározott helyeken vannak tárolva. A Memória ablakban látható a teljes kép. A memórianézet alkalmas nagy adatrészek (például pufferek vagy nagy sztringek) vizsgálatára, amelyek nem jelennek meg jól a többi ablakban.

A memória ablak nem korlátozódik az adatok megjelenítésére. Megjeleníti a memóriaterület minden elemét, beleértve az adatokat, a kódot és a véletlenszerű szemétbiteket az hozzárendeletlen memóriában.

A memória ablak nem érhető el szkriptekhez vagy SQL-hibakereséshez. Ezek a nyelvek nem ismerik fel a memória fogalmát.

Memóriaablak megnyitása

A többi hibakereső ablakhoz hasonlóan a Memória ablakai is csak hibakeresési munkamenetek során érhetők el.

Fontos

A memóriaablakok engedélyezéséhez jelölje be a Címszintű hibakeresés engedélyezése jelölőnégyzetet a Hibakeresés szakasz Eszközök (vagy >) beállításai területén.

Memóriaablak megnyitása:

  1. Nyissa meg az Eszközök (vagy hibakeresés) >beállítások panelt , bontsa ki az Összes beállítás>hibakeresése>általános szakaszt, és jelölje be a Címszintű hibakeresés engedélyezése jelölőnégyzetet.
  1. Nyissa meg az Eszközök (vagy Hibakeresés) >beállítások párbeszédpanelt, bontsa ki azÁltalános> szakaszt, és jelölje be a Címszintű hibakeresés engedélyezése jelölőnégyzetet.
  1. Indítsa el a hibakeresést a zöld nyíl kiválasztásával, az F5 lenyomásával vagy Hibakeresés>A hibakeresés indításalehetőség kiválasztásával.

  2. A Hibakeresés>Windows>Memóriaterületen válassza Memória 1, Memória 2, Memória 3vagy Memória 4lehetőséget. (A Visual Studio egyes kiadásai csak egy memória ablakot kínálnak.)

Több ablak lehetővé teszi, hogy a memóriaterület különböző területeinek nézeteit egyszerre fenntartsa.

Mozgás a Memória ablakban

A számítógép címtere nagy, és a Memória ablakban való görgetéssel könnyen elveszítheti a helyét.

A nagyobb memóriacímek az ablak alján jelennek meg. Egy magasabb cím megtekintéséhez görgessen lefelé. Alsó cím megtekintéséhez görgessen felfelé.

A legtöbb esetben egy adott memóriahelyet szeretne megtalálni.

Memóriahely keresése

A Memória ablakban azonnal megnyithat egy megadott címet húzással vagy a Cím mezőben megadott cím beírásával. A Cím mező alfanumerikus címeket és kifejezéseket fogad el, amelyek címként értékelnek, például e.User.NonroamableId.

Ha egy kifejezés azonnali újraértékelését szeretné kikényszeríteni a Cím mezőben, válassza a lekerekített nyíl Automatikus átértékelése ikont .

A Memória ablak alapértelmezés szerint élő kifejezésként kezeli a címkifejezéseket , amelyeket az alkalmazás futtatásakor újraértékelnek. Az élő kifejezések hasznosak lehetnek például a mutatóváltozó által megérintett memória megtekintéséhez.

Használja a húzást és ejtést, hogy áthelyezzen egy memóriahelyre:

  1. Bármelyik hibakereső ablakban jelöljön ki egy memóriacímet vagy egy memóriacímet tartalmazó mutatóváltozót.

  2. Húzza és dobja a címet vagy a mutatót a Memória ablakába.

    Ez a cím megjelenik a Cím mezőben, és a Memória ablak úgy van beállítva, hogy a cím a tetején jelenjen meg.

Hely megadása a Cím mezőben a memóriahelyre való áthelyezéshez:

  • Írja be vagy illessze be a címet vagy kifejezést a Cím mezőbe, és nyomja le Enterbillentyűt, vagy válassza ki a Cím mező legördülő listájából.

    Ez a cím megjelenik a Cím mezőben, és a Memória ablak úgy van beállítva, hogy a cím a tetején jelenjen meg.

    Memória ablak képernyőképe.

A Memória ablak testreszabása

Alapértelmezés szerint a memória tartalma hexadecimális formátumban 1 bájt egész számként jelenik meg, és az ablak szélessége határozza meg a megjelenített oszlopok számát. Testre szabhatja, hogy a Memória ablak hogyan jeleníti meg a memória tartalmát.

A memória tartalmának formátumának módosítása:

  • Kattintson a jobb gombbal a Memória ablakban, és válassza ki a kívánt formátumokat a helyi menüből.

A Memória ablak oszlopainak számának módosítása:

  • Válassza a Oszlopok mező melletti legördülő nyilat, és válassza ki a megjelenítendő oszlopok számát, vagy válassza Automatikus lehetőséget az ablakszélesség alapján történő automatikus beállításhoz.

Ha nem szeretné, hogy a Memória ablak tartalma megváltozzon az alkalmazás futtatásakor, kikapcsolhatja az élőkifejezések kiértékelését.

Élő mérés kapcsolása

  • Kattintson a jobb gombbal a Memória ablakban, majd a helyi menüben válassza az Automatikus újraértékelés opciót.

    Megjegyzés

    Az élő kifejezés kiértékelése egy kapcsoló, ami alapértelmezés szerint be van kapcsolva, így ha a Automatikus újraértékelés lehetőséget választjuk, az kikapcsolja azt. Ha bejelöli az Automatikus újraértékelés opciót, ismét bekapcsolja.

Elrejtheti vagy megjelenítheti az eszköztárat a Memória ablak tetején. Ha az eszköztár rejtett, nem férhet hozzá a Cím mezőhöz vagy más eszközökhöz.

Az eszköztár megjelenítésének kapcsolása:

  • Kattintson a jobb egérgombbal a Memória ablakban, és a helyi menüben válassza a Eszköztár megjelenítése lehetőséget. Az eszköztár az előző állapotától függően megjelenik vagy eltűnik.

Mutató követése a memóriában (C/C++)

Natív kódalkalmazásokban a regiszterneveket élő kifejezésként használhatja. Például a kupacmutató segítségével követheti a vermet.

Kövesse az egérmutatót a memórián keresztül:

  1. A Memória ablakban Cím mezőben adjon meg egy mutatókifejezést, amely az aktuális hatókörben található. A nyelvtől függően előfordulhat, hogy elő kell hívni.

  2. Nyomja le Enterbillentyűt.

    Hibakeresési parancs (például Lépés) használatakor a Cím mezőben és a Memória ablak tetején megjelenő memóriacím automatikusan megváltozik a mutató változásakor.

Memóriamutatók megtekintése (.NET)

Ha egy .NET-objektum tartalmát memóriamutató alapján szeretné megtekinteni, például egy halom pillanatképbőlkapott címet, ezt {CLR}@Address jelöléssel teheti meg. A címnek a memóriára mutató mutatónak kell lennie, például 0x1D102A581B0. Írja be a memóriamutatót a Memória ablak {CLR}@Address mezőben jelöléssel. Alternatív megoldásként ugyanezt a jelölést használhatja az óra hozzáadásához a Figyelő ablak.

Ha egy halomképből szeretné lekérni a memória mutatójának címét, nyissa meg a halomképet, válassza a Felügyelt memória hibakereséselehetőséget, amely megnyitja a memóriahasználat eszközt. Kattintson a jobb gombbal a kívánt objektumra, és válassza a Példányok megtekintéselehetőséget.