Наблюдение значений переменных

Для того чтобы во время выполнения программы по шагам иметь возможность контролировать значение переменной, нужно добавить имя этой переменной в список наблюдаемых элементов (Watch List). Для этого надо из меню Run выбрать команду Add Watch (Добавить наблюдаемый элемент). После этого появится диалоговое окно Watch Properties (рис. 12).

В поле Expression появившегося диалогового окна Watch Properties нужно ввести имя переменной. Можно просматривать значения не только переменных, но и выражений типа х*(y+z). Единственное ограничение - выражение не может содержать вызовов функций. Допускается также просмотр значений записей, массивов и других структурированных элементов.

 
 

Рис. 12. Добавление имени переменной в список Watch List.

Поле Repeat Count используется в том случае, если нужно просмотреть часть большого массива. Предположим, что вам надо знать значения элементов 826-833 следующего массива

Var

BigArray: array[1..1000] ofInteger;

Тогда в поле Expression указываем значение BigArray [826] и устанавливаем параметр Repeat Count равным 8. При этом вам будут показаны значения восьми элементов массива— от 826 по 833.

Использование поля Digits позволяет определить количество значащих цифр при выводе числа с плавающей точкой.

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

В диалоговом окне имеется также набор переключателей для выбора способа представления переменной. Значение Defaultпозволяет среде разобраться с типом переменной самостоятельно. Как правило, такое решение оптимально, однако в любой момент вы можете представить переменную как переменную того типа, который вас интересует. Опция Memory dump представляет информацию как набор байтов, что бывает полезно, когда необходимо увидеть внутреннее представление информации в переменной.

 

Рис. 13. Результат добавления имени переменной в список Watch List.

После нажатия на кнопку ОК в окне Watch Properties в список Watch List, содержимое которого отражается в диалоговом окне Watch List (рис. 13), будет добавлен новый элемент. Так как переменные программы существуют (и, следовательно, доступны) только во время выполнения программы, то после имени переменной выводится сообщение: process not accessible (процесс недоступен). Также может быть выведено одно из следующих сообщений:

· Variable 'X' inaccessible here due to optimization (Переменная 'X' недоступнаиз-заоптимизации). В этой точке значение переменной просмотреть невозможно (иногда это можно сделать в другом месте программы), так как для нее не выделена память из-за оптимизации программы компилятором.

· Symbol was eliminated by linker (Переменнаяудаленакомпоновщиком). Переменная удалена из кода программы компоновщиком, так как на нее нет ни одной ссылки в тексте программы.

Отладчик также выводит сообщение об ошибке, если имя переменной написано неправильно, например вы запросили значение Foo [5], в то время как переменная Foo массивом не является.

В качестве примера на рис. 14 приведен вид окна редактора кода и окна Watch List во время пошагового выполнения программы.


Рис. 14. Контроль значений переменных во время пошагового выполнения программы.

В окне Редактора кода стрелкой помечена инструкция, которая будет выполнена на следующем шаге выполнения программы (при нажатии клавиши F8 или при выборе команды Step Over из меню Run), в диалоговом окне Watch List выведены значения переменных.

Существует еще один способ, позволяющий проверить значение переменной, не добавляя ее имя в список Watch List. Заключается он в следующем. После того как программа достигнет точки останова, в результате чего откроется окно редактора кода, нужно установить курсор мыши на имени переменной, значение которой надо проверить. В окне редактора кода появится окно подсказки, в котором будет выведено значение переменной (рис. 15).

Рис. 15. Контроль значения переменной без добавления имени в список Watch List.

Диалоговое окно Evaluate/Modify

Для просмотра значения переменной можно использовать диалоговое окно Evaluate/Modify, позволяющее работать только с одной переменной (в нем можно не только просмотреть, но и изменить ее содержимое).

Для вывода диалогового окна Evaluate/Modify нужно выбрать команду Run/Evaluate/Modify (рис 16). Другой способ вызова диалогового окна - установить курсор в окне редактирования на необходимой переменной, щелкнуть правой кнопкой мыши и в контекстном меню выбрать команду Debug\Evaluate/Modify.

Далее в поле Expression нужно ввести выражение и щелкнуть на кнопке Evaluate для того, чтобы увидеть результат в поле Result. Если выражение состоит только из имени простой переменной (не массива или структуры!), можете ввести новое значение для переменной в поле New Value и, щелкнув на кнопке Modify, присвоить переменной новое значение. Это позволяет корректировать значения переменных в процессе отладки, не останавливаясь и не перекомпилируя всю программу.

 
 

Рис 16.Использование диалогового окна Evaluate/Modify для проверки изменения отдельной переменной.

Диалоговое окно Evaluate/Modify - немодальное, т. е. можно не закрывать его, продолжая отладку. Однако в отличие от окна Watch List диалоговое окно Evaluate/Modify не отслеживает изменения значений переменных и для получения информации о текущем состоянии переменной необходимо пользоваться кнопкой Evaluate.

Так же, как и окно Watch List, диалоговое окно Evaluate/Modify может выводить сообщения об ошибках, если отладчик не в состоянии вывести информацию о переменных. И точно так же не выводится информация о выражениях, содержащих вызов функций.








Дата добавления: 2015-09-07; просмотров: 955;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.