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


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

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

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

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

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

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

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

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

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