Używanie okien pamięci w debugerze Visual Studio (C#, C++, Visual Basic, F#)

Podczas debugowania w oknie Pamięć jest przedstawiana przestrzeń pamięci, z których korzysta aplikacja.

Okna debugera, takie jak Watch, Autos, Locals i QuickWatch, pokazują zmienne, które są przechowywane w określonych lokalizacjach w pamięci. W oknie Pamięć zostanie pokazana ogólna ilustracja. Widok pamięci jest wygodny do badania dużych ilości danych (na przykład buforów lub dużych ciągów), które nie są dobrze wyświetlane w innych oknach.

Okno Pamięć nie jest ograniczone do wyświetlania danych. Wyświetla wszystkie dane w przestrzeni pamięci, w tym dane, kod i losowe bity pamięci w nieprzypisanej pamięci.

Okno Pamięć nie jest dostępne dla skryptu ani SQL debugowania. Te języki nie rozpoznają koncepcji pamięci.

Otwieranie okna Pamięci

Podobnie jak w przypadku innych okien debugera okna pamięci są dostępne tylko podczas sesji debugowania.

Ważne

Aby włączyć okna Pamięć, włącz debugowanie na poziomie adresu, należy wybrać opcję Opcje narzędzi > (lub > Opcje debugowania ) > > Debugowanie ogólne.

Aby otworzyć okno Pamięci

  1. Upewnij się, że opcja Włącz debugowanie na poziomie adresu jest zaznaczona na stronie Opcje > narzędzi (lub > Opcje debugowania ) > Debugowanie > ogólne.

  2. Rozpocznij debugowanie, wybierając zieloną strzałkę, naciskając klawisz F5 lub wybierając pozycję Debuguj > rozpocznij debugowanie.

  3. W obszarze > Windows > pamięci wybierz pozycję Pamięć 1, Pamięć 2, Pamięć 3 lub Pamięć 4. (Niektóre wersje programu Visual Studio oferują tylko jedno okno pamięci).

Poruszanie się po oknie Pamięć

Przestrzeń adresowa komputera jest duża i możesz łatwo utracić swoje miejsce, przewijając w oknie Pamięć.

W dolnej części okna są wyświetlane wyższe adresy pamięci. Aby wyświetlić wyższy adres, przewiń w dół. Aby wyświetlić niższy adres, przewiń w górę.

Możesz natychmiast przejść do określonego adresu w oknie Pamięć za pomocą przeciągania i upuszczania lub wprowadzając adres w polu Adres. Pole Adres akceptuje adresy alfanumeryczne i wyrażenia, które są obliczane jako adresy, takie jak e.User.NonroamableId .

Aby wymusić natychmiastową ponowną ocenę wyrażenia w polu Adres, wybierz zaokrągloną strzałkę Przeanalituj ponownie ikonę Automatycznie.

Domyślnie okno Pamięć traktuje wyrażenia Address jako wyrażenia na żywo, które są ponownie oceniane podczas pracy aplikacji. Wyrażenia na żywo mogą być przydatne na przykład do wyświetlania pamięci dotykanej przez zmienną wskaźnika.

Aby użyć przeciągania i upuszczania w celu przeniesienia do lokalizacji pamięci:

  1. W dowolnym oknie debugera wybierz adres pamięci lub zmienną wskaźnika zawierającą adres pamięci.

  2. Przeciągnij i upuść adres lub wskaźnik w oknie Pamięć. Ten adres zostanie wyświetlony w polu Adres, a okno Pamięć zostanie dostosowane w celu wyświetlenia tego adresu u góry.

Aby przejść do lokalizacji pamięci, wprowadzając ją w polu Adres:

  • Wpisz lub wklej adres lub wyrażenie w polu Adres i naciśnij klawisz Enter lub wybierz go z listy rozwijanej w polu Adres. Okno Pamięć zostanie dostosowane w celu wyświetlenia tego adresu u góry.

Dostosowywanie okna Pamięć

Domyślnie zawartość pamięci jest wyświetlana jako 1-bajtowe liczby całkowite w formacie szesnastkowym, a szerokość okna określa liczbę wyświetlanych kolumn. Możesz dostosować sposób, w jaki w oknie Pamięć jest przedstawiana zawartość pamięci.

Aby zmienić format zawartości pamięci:

  • Kliknij prawym przyciskiem myszy w oknie Pamięć i z menu kontekstowego wybierz odpowiednie formaty.

Aby zmienić liczbę kolumn w oknie Pamięć:

  • Wybierz strzałkę listy rozwijanej obok pola Kolumny i wybierz liczbę kolumn do wyświetlenia lub wybierz pozycję Automatycznie, aby automatycznie dopasować na podstawie szerokości okna.

Jeśli nie chcesz, aby zawartość okna Pamięć zmieniała się podczas działania aplikacji, możesz wyłączyć ocenę wyrażeń na żywo.

Aby przełączyć ocenę na żywo:

  • Kliknij prawym przyciskiem myszy w oknie Pamięć, a następnie w menu kontekstowym wybierz pozycję Ponownie przesuń automatycznie.

    Uwaga

    Ocena wyrażeń na żywo jest przełącznikiem i jest domyślnie włączona, dlatego wybranie opcji Ponownie przesuń automatycznie powoduje wyłączenie tej opcji. Wybranie opcji Ponownie przeslij automatycznie powoduje ponowne jej ponowne zaznaczenie.

Pasek narzędzi można ukryć lub wyświetlić w górnej części okna Pamięć. Gdy pasek narzędzi jest ukryty, nie będziesz mieć dostępu do pola Adres ani innych narzędzi.

Aby przełączyć wyświetlanie paska narzędzi:

  • Kliknij prawym przyciskiem myszy w oknie Pamięć, a następnie wybierz pozycję Pokaż pasek narzędzi w menu kontekstowym. Pasek narzędzi pojawia się lub znika w zależności od jego poprzedniego stanu.

Obserwowanie wskaźnika przez pamięć

W aplikacjach kodu natywnego można używać nazw rejestrów jako wyrażeń na żywo. Możesz na przykład użyć wskaźnika stosu, aby podążać za stosem.

Aby podążać za wskaźnikiem pamięci:

  1. W polu Adres okna Pamięć wprowadź wyrażenie wskaźnika, które znajduje się w bieżącym zakresie. W zależności od języka może być konieczne wyłudzynie go.

  2. Naciśnij klawisz Enter.

W przypadku użycia polecenia debugowania, takiego jak Krok, adres pamięci wyświetlany w polu Adres i w górnej części okna Pamięć automatycznie zmienia się wraz ze zmianami wskaźnika.

Zobacz też