Наблюдение значений переменных
Для того чтобы во время выполнения программы по шагам иметь возможность контролировать значение переменной, нужно добавить имя этой переменной в список наблюдаемых элементов (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; просмотров: 1017;