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

Okna ladicího programu, jako jsou Kukátku, Automatické hodnoty, 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 bitů uvolňování paměti 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ření okna 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 obecných ladění> nástroje> (nebo možnosti ladění>) >vybrána možnost Povolit ladění na úrovni adresy.

Otevření okna Paměť:

  1. Ujistěte se, že je v možnostech nástrojů>(nebo možnostech ladění>)>> obecné ladění zaškrtnuté políčko Povolit ladění na úrovni adresy.

  2. Spusťte ladění tak, že vyberete zelenou šipku, stisknete klávesu F5 nebo vyberete> Ladění spustit ladění.

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

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

Pohyb v okně Paměť

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

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.

Vyhledání 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é opětovné vyhodnocení výrazu v poli Adresa, vyberte ikonu Automatické vyhodnocení zaokrouhlené šipky.

Ve výchozím nastavení okno Paměť zpracovává výrazy Adresy jako živé výrazy, které se znovu vyhodnotí 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 umístění do pole Adresa se přesunete do umístění 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 s oknem Paměť

Přizpůsobení okna Paměť

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 spuš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č a je ve výchozím nastavení zapnutý, takže když vyberete Možnost Znovu vyhodnotit automaticky , 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ěť . Pokud je panel nástrojů skrytý, nebudete mít 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. Pomocí ukazatele zásobníku můžete například postupovat podle zásobníku.

Postupujte podle ukazatele 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 odvodit.

  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 haldy, můžete to provést pomocí {CLR}@Address zápisu. Adresa musí být ukazatel na paměť, například 0x1D102A581B0. Do pole Adresa okna Paměť zadejte ukazatel paměti pomocí {CLR}@Address zápisu. 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 paměti haldy, zvolte Ladit spravovanou paměť, která 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.