Окно памяти
Окно Память предоставляет обзор области памяти, используемой программой. Окно Контрольные значения, диалоговое окно Быстрая проверка, окно Видимые и окно Локальные отображают содержимое переменных, которые хранятся в определенных участках памяти. Но окно Память показывает более полную картину. Данное представление может быть полезно при анализе больших частей данных (например, буферов или больших строк), которые плохо отображаются в других окнах. Однако в окне Память могут отображаться не только данные. В нем может отображаться все, что находится в области памяти, будь то данные, код или случайные биты мусора из свободного участка памяти.
Окно Память доступно только при включении отладки на уровне адреса в узле Отладка диалогового окна Параметры. Окно Память не доступно для скриптов и SQL, поскольку эти языки не поддерживают концепцию памяти.
Открытие окна "Память"
Открытие окна "Память"
Запустите отладку, если еще не сделали это.
В меню Отладка выберите пункт Окна. Затем выберите Память и щелкните Память 1, Память 2, Память 3 или Память 4. (В младших выпусках Visual Studio имеется только одно окно Память. При использовании одного из таких выпусков просто щелкните пункт Память.)
Разбиение по страницам в окне "Память"
В окне Память имеется вертикальная полоса прокрутки, работающая в нестандартном режиме. Современные персональные компьютеры имеют очень большое адресное пространство, поэтому в нем достаточно легко заблудиться, перетаскивая бегунок полосы прокрутки в произвольное расположение. По этой причине бегунок "подпружинен" и всегда остается в центре полосы прокрутки. В приложениях машинного кода можно постранично перемещаться вверх и вниз, однако нельзя свободно использовать полосу прокрутки.
Старшие адреса памяти отображаются в нижней части экрана. Для просмотра старших адресов следует прокрутить экран вниз, а не вверх.
Перемещение вверх или вниз в области памяти
Для перемещения на страницу вниз (к старшему адресу памяти) щелкните вертикальную полосу прокрутки под бегунком.
Для перемещения на страницу вверх (к младшему адресу памяти) щелкните вертикальную полосу прокрутки ниже бегунка.
Выбор ячейки памяти
Быстро переместиться в выбранную ячейку памяти можно с помощью операции перетаскивания или с помощью изменения значения в поле Адрес. В поле Адрес можно вводить не только числовые значения, но и выражения, результатом вычисления которых является адрес. По умолчанию выражение Адрес интерпретируется в окне Память в режиме реального времени, т.е. это выражение заново вычисляется по мере выполнения программы. Выражения, вычисляемые в реальном времени, могут быть очень полезными. Например, их можно использовать для просмотра участка памяти, на который ссылается указатель.
Выбор ячейки памяти с помощью перетаскивания
Выберите в любом окне адрес памяти или переменную-указатель, содержащую адрес памяти.
Перетащите адрес или указатель в окно Память.
Выбор ячейки памяти путем ввода значения
В окне Память выберите поле Адрес.
Введите или вставьте нужный адрес и нажмите клавишу ВВОД.
Изменение способа отображения информации в окне памяти
Можно настроить способ отображения содержимого памяти в окне Память. По умолчанию содержимое памяти отображается в виде шестнадцатеричных однобайтовых целых чисел, а количество столбцов определяется автоматически исходя из текущей ширины окна.
Изменение формата содержимого памяти
Щелкните правой кнопкой мыши в окне Память.
Выберите требуемый формат.
Изменение числа столбцов в окне "Память"
На панели инструментов в верхней части окна Память найдите список Столбцы.
В списке Столбцы выберите необходимое количество столбцов для отображения или команду Авто для автоматической установки ширины окна.
Если требуется, чтобы содержимое окна Память не изменялось в ходе выполнения программы, можно выключить вычисление выражений в режиме реального времени.
Включение или выключение вычисления в режиме реального времени
Щелкните правой кнопкой мыши в окне Память.
В контекстном меню выберите пункт Автоматический пересчет.
Если вычисление в режиме реального времени включено, параметр будет помеченным, и щелчок мышью по этому параметру выключит вычисление. Если вычисление в режиме реального времени выключено, параметр будет непомеченным, и щелчок мышью по этому параметру включит вычисление.
Можно скрывать или отображать панель инструментов в верхней части окна Память. Если панель инструментов скрыта, поле "Адрес" и другие средства недоступны.
Включение или отключение панели инструментов
Щелкните правой кнопкой мыши окно Память.
В контекстном меню выберите пункт Показать панель инструментов.
Панель инструментов появится или исчезнет, в зависимости от своего предыдущего состояния.
Отслеживание указателя в памяти
В приложениях машинного кода можно использовать имена регистров в качестве выражений реального времени. Например, можно использовать указатель стека для отслеживания стека.
Отслеживание указателя в памяти
В окне Память в поле Адрес введите выражение указателя. Переменная указателя должна находиться внутри текущей области. В зависимости от языка может возникнуть необходимость в ее разыменовании.
Нажмите клавишу ВВОД.
Теперь, при запуске команды выполнения, например Шаг, отображаемый адрес памяти будет автоматически изменяться при изменении указателя.