Sdílet prostřednictvím


Použití oken paměti v ladicím programu sady Visual Studio (C#, C++, Visual Basic, F#)

Během ladění se v okně Paměť zobrazuje místo v paměti, které vaše aplikace používá.

Ladicí okna jako Kukátko, Automaticky, Místní hodnoty a dialogové okno QuickWatch zobrazují proměnné, které jsou uložené v konkrétních umístěních v paměti. V okně Paměť se zobrazí celkový obrázek. Zobrazení paměti je vhodné pro zkoumání velkých částí dat (například vyrovnávací paměti nebo velkých řetězců), které se v ostatních oknech nezobrazují dobře.

Okno Paměť není omezeno na zobrazení dat. Zobrazí všechno v paměťovém prostoru, včetně dat, kódu a náhodných nevyužitých bitů v nepřiřazené paměti.

Okno Paměť není k dispozici pro ladění skriptu nebo SQL. Tyto jazyky nerozpoznávají koncept paměti.

Otevřete okno Paměť

Stejně jako ostatní okna ladicího programu jsou okna Paměti k dispozici pouze během ladicí relace.

Důležité

Chcete-li povolit okna Paměť, musí být v části Nástroje (nebo Ladění) zaškrtnuté políčko > v možnostech v rámci sekce Ladění.

Otevření okna Paměť:

  1. Otevřete podokno Nástroje (nebo Ladění) >Možnosti, rozbalte sekci Všechna nastavení>Ladění>Obecné a zaškrtněte políčko Povolit ladění na úrovni adresy.
  1. Otevřete dialogové okno Nástroje (nebo Debug) >Možnosti, rozbalte sekci ladění>Obecné a zaškrtněte políčko Povolit ladění na úrovni adresy.
  1. Spusťte ladění vybráním zelené šipky, stisknutím F5, nebo výběrem Debug>Spustit ladění.

  2. V části Ladění>Windows>Paměti vyberte Paměť 1, Paměť 2, Paměť 3 nebo Paměť 4. (Některé edice sady Visual Studio nabízejí pouze jedno okno paměti .)

Více oken umožňuje udržovat zobrazení pro různé oblasti v paměťovém prostoru najednou.

Pohybujte se v okně Paměť

Adresní prostor počítače je velký a při posouvání v okně Paměť se můžete snadno ztratit.

V dolní části okna se zobrazí adresy s vyšší pamětí. Pokud chcete zobrazit vyšší adresu, posuňte se dolů. Pokud chcete zobrazit nižší adresu, posuňte se nahoru.

Ve většině scénářů chcete najít konkrétní umístění paměti.

Najít umístění paměti

V okně Paměť můžete okamžitě přejít na zadanou adresu přetažením nebo zadáním adresy do pole Adresa . Pole Adresa přijímá alfanumerické adresy a výrazy, které se vyhodnocují jako adresy, například e.User.NonroamableId.

Pokud chcete vynutit okamžité přehodnocení výrazu v poli Adresa, vyberte ikonu se zaokrouhlenou šipkou Automaticky znovu vyhodnotit.

Ve výchozím nastavení okno Paměť považuje výrazy Adresy za živé výrazy, které se znovu vyhodnocují při spuštění aplikace. Dynamické výrazy můžou být užitečné například k zobrazení paměti, která se dotkne proměnné ukazatele.

Přetažením přejděte do umístění paměti:

  1. V libovolném okně ladicího programu vyberte adresu paměti nebo proměnnou ukazatele, která obsahuje adresu paměti.

  2. Přetáhněte adresu nebo ukazatel v okně Paměť .

    Tato adresa se zobrazí v poli Adresa a okno Paměť se přizpůsobí zobrazení této adresy v horní části.

Zadáním adresy do pole Adresa se přesunete na adresu v paměti:

  • Zadejte nebo vložte adresu nebo výraz do pole Adresa a stiskněte Enter nebo ho vyberte z rozevíracího seznamu v poli Adresa .

    Tato adresa se zobrazí v poli Adresa a okno Paměť se přizpůsobí zobrazení této adresy v horní části.

    Snímek obrazovky okna paměti.

Přizpůsobte okno Paměti

Ve výchozím nastavení se obsah paměti zobrazuje jako 1 bajtová celá čísla v šestnáctkovém formátu a šířka okna určuje počet zobrazených sloupců. Způsob, jakým okno Paměť zobrazuje obsah paměti, můžete přizpůsobit.

Změňte formát obsahu paměti:

  • V okně Paměť klikněte pravým tlačítkem myši a v místní nabídce zvolte požadované formáty.

Změňte počet sloupců v okně Paměť:

  • Vyberte šipku rozevíracího seznamu vedle pole Sloupce a vyberte počet sloupců, které se mají zobrazit, nebo vyberte automatické úpravy na základě šířky okna.

Pokud nechcete, aby se při spouštění aplikace změnil obsah okna Paměť , můžete vypnout vyhodnocení živého výrazu.

Přepnout živé vyhodnocení:

  • Klikněte pravým tlačítkem myši v okně Paměť a v místní nabídce vyberte Znovu vyhodnotit automaticky .

    Poznámka:

    Vyhodnocení živého výrazu je přepínač, který je ve výchozím nastavení zapnutý. Pokud vyberete Automaticky znovu vyhodnotit, vypne se. Po výběru možnosti Znovu vyhodnotit automaticky se znovu zapne.

Panel nástrojů můžete skrýt nebo zobrazit v horní části okna Paměť . Když je panel nástrojů skrytý, nemůžete získat přístup k poli Adresa ani k jiným nástrojům.

Přepněte zobrazení panelu nástrojů:

  • Klikněte pravým tlačítkem myši v okně Paměť a v místní nabídce vyberte Zobrazit panel nástrojů . Panel nástrojů se zobrazí nebo zmizí v závislosti na předchozím stavu.

Sledování ukazatele přes paměť (C/C++)

V aplikacích nativního kódu můžete použít názvy registrů jako živé výrazy. Například můžete pomocí ukazatele zásobníku sledovat zásobník.

Sledujte ukazatel v paměti:

  1. Do pole Adresa okna Paměť zadejte výraz ukazatele, který je v aktuálním oboru. V závislosti na jazyce ho možná budete muset dereferencovat.

  2. Stiskněte klávesu Enter.

    Když použijete příkaz ladění, například Krok, adresa paměti zobrazená v poli Adresa a v horní části okna Paměť se automaticky změní při změně ukazatele.

Zobrazení ukazatelů paměti (.NET)

Pokud chcete zobrazit obsah objektu .NET na základě ukazatele paměti, například adresy získané ze snímku heapu, můžete to provést pomocí {CLR}@Address zápisu. Adresa musí být ukazatel na paměť, například 0x1D102A581B0. Do pole Adresa v okně Paměť zadejte ukazatel paměti pomocí zápisu {CLR}@Address. Případně můžete pomocí stejného zápisu přidat kukátko pomocí okna Kukátko.

Pokud chcete získat adresu ukazatele paměti ze snímku haldy, otevřete výpis haldy a zvolte Debuggovat spravovanou paměť, což otevře nástroj Využití paměti. Klikněte pravým tlačítkem myši na objekt, který vás zajímá, a zvolte Zobrazit instance.