Поделиться через


Доступ к локальным переменным

Локальные переменные, такие как глобальные переменные, хранятся в файлах символов. Как и в случае с глобальными переменными, отладчик интерпретирует их имена как адреса. Их можно считывать и записывать так же, как и глобальные переменные. Однако, если необходимо указать команде, что символ является локальным, предшествуйте символу с символом доллара ($) и восклицательным знаком (! ), как и в $!var.

Visual Studio и WinDbg предоставляют элементы пользовательского интерфейса, которые можно использовать (в дополнение к командам) для просмотра и редактирования локальных переменных. Дополнительные сведения см. в разделе "Просмотр и изменение локальных переменных" в WinDbg (классическая модель).

Можно также использовать следующие методы для отображения, изменения и использования локальных переменных:

  • Команда dv (Display Local Variables) отображает имена и значения всех локальных переменных.

  • Расширение !for_each_local позволяет многократно выполнять одну команду для каждой локальной переменной.

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

Отладчик интерпретирует локальные переменные в соответствии с локальным контекстом. По умолчанию этот контекст соответствует расположению счетчика программы. Но отладчик может изменить контекст. Дополнительные сведения о локальном контексте см. в разделе "Локальный контекст".

При изменении локального контекста окно "Локальные" немедленно обновляется, чтобы отразить новую коллекцию локальных переменных. Команда dv также отображает новые переменные. Затем все эти имена переменных интерпретируются правильно командами памяти, описанными ранее. Затем эти переменные можно считывать или записывать.