Практическое руководство. Установка точки останова для данных (только машинный код)

Обновлен: Ноябрь 2007

Этот раздел применим к:

Выпуск

Visual Basic

C#

C++

Web Developer

Express

Тема не применяется Тема не применяется

Только машинные коды

Тема не применяется

Standard

Тема не применяется Тема не применяется

Только машинные коды

Тема не применяется

Pro и Team

Тема не применяется Тема не применяется

Только машинные коды

Тема не применяется

Условные обозначения:

Тема применяется

Применяется

Тема не применяется

Не применяется

Тема применяется, но команда по умолчанию сокрыта

Команда или команды скрыты по умолчанию.

Точки останова для данных приостанавливают выполнение, когда записывается значение в указанную область памяти. Если значение доступно только для чтения, но не для записи, выполнение не прерывается.

Точки останова для данных не работают при следующих условиях: если процесс (не отлаживаемый) пишет в указанную память или если область памяти разделяется двумя и более процессами. Точки останова для данных не работают, если область памяти обновляется в ядре. Например, если память передается в функцию ReadFile 32-разрядного Windows, память будет обновляться из режима ядра и отладчик не будет прерывать выполнение по записи в память.

Чтобы установить точку останова для данных, отладчик должен находиться в режиме приостановки.

Адреса переменных меняются в разных сеансах отладки. По этой причине точки останова для данных автоматически отключаются в конце каждого сеанса отладки.

Если установить точку останова для данных на локальную переменную, точка останова для данных остается включенной, когда функция заканчивается. Однако, адрес памяти, на который она установлена, имеет теперь другое значение. Таким образом, результаты такой точки останова непредсказуемы. Если установить точку останова для данных на локальную переменную, рекомендуется удалить или отключить точку останова до конца функции.

Visual Studio поддерживает не более четырех точек останова для данных на решение.

350dyxd0.alert_note(ru-ru,VS.90).gifПримечание.

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или выпуска среды. Для изменения параметров выберите пункт Импорт и экспорт параметров в меню Сервис. Дополнительные сведения см. в разделе Параметры Visual Studio.

Задание точки останова по изменению памяти

  1. В меню Отладка выберите команду Создать точку останова и нажмите Создать точку останова в данных

    либо

    В меню окна Точки останова последовательно выберите пункты Создать и Создать точку останова в данных.

    Появится диалоговое окно Создать точку останова.

  2. В поле Адрес введите адрес в памяти или выражение, результатом вычисления которого будет адрес в памяти. Например, &avar для прерывания при изменении содержимого переменной avar.

  3. В поле Число байтов введите количество байт, за которыми должен наблюдать отладчик. Например, при вводе 4 отладчик будет отслеживать четыре байта, начиная с &myFunction, и прерывать выполнение, если любой из этих байтов изменит значение.

  4. Нажмите кнопку ОК.

См. также

Основные понятия

Точки останова и точки отслеживания