Выбрать главу

Trace to Next Source Line. Иногда ваш код вызывает другой код косвенно, например, при вызове функции, которая запускает обработчик события, или при вызове функции Windows API, которая, в свою очередь, запускает функцию косвенного вызова. Поскольку такие вызовы косвенные, отладчик не видит вызова и не отслеживает пошагового выполнения таких вызовов. Однако использование описываемой команды приводит к отслеживанию таких вызовов и останову отладчика на первой строке вызываемой таким образом функции или процедуры.

I Run to Cursor. Зачастую вам вовсе не хочется в поисках ошибки, местоположение которой с какой-то точностью вам известно, пошагово добираться до нужного места через сотни, а то и тысячи строк кода. В таком случае просто поместите курсор на нужную вам строку программы в окне редактирования и используйте команду Run to Cursor. Эти действия эквивалентны временному помещению точки останова в необходимую вам строку программы, и после выполнения предшествующего строке кода работа программы приостанавливается. Если вы пытаетесь выполнить программу до позиции курсора, который находится в строке, не содержащей отладочной информации, вы получите сообщение об ошибке, показанное на рис. 2.11.

Рис. 2.11.Это сообщение о том, что вы пытаетесь остановить выполнение программа на строке, не содержащей отладочной информации.

Show Execution Point. Эта команда заставляет среду разработки открыть окно редактора и показать выполняемую в настоящее время строку программы. Она полезна в случаях, когда вы, например, закрыли или свернули окно редактора во время отладки (обычно при нормальном состоянии окна отладчик делает это автоматически).

Program Pause. Выбор этой команды немедленно останавливает выполнение программы. Она особенно полезна при зацикливании программы.

Program Reset. Если вы достаточно «наотлаживались» и хотите завершить работу своей программы или запустить ее заново, используйте эту команду. Она немедленно прекратит выполнение программы и вернет вас в среду разработчика. Многие команды имеют связанные с ними комбинации клавиш, например <F9 для Run. Однако назначения клавиш могут быть изменены во вкладке Editor диалогового окна Options. Например, команде Step Over назначена клавиша <F8, но при выборе назначений клавиш в стиле редактора BRIEF назначенной комбинацией клавиш становится <Ctrl+F11. Вы можете увидеть назначенные клавиши непосредственно в меню Run, как показано на рис. 2.10. Помимо этого, на панели инструментов есть кнопки, вызывающие некоторые из этих команд (вы имеете возможность также удалить некоторые из них или добавить новые).

Просмотр значений переменных

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

Для просмотра значения переменной используйте команду Run/AddWatch или установите указатель мыши на переменную в окне редактирования, щелкните правой кнопкой мыши и выберите из контекстного меню команду Add Watch at Cursor. После этого появится диалоговое окно Watch Properties, показанное на рис. 2.12. Введите имя переменной в поле Expression (если оно не появилось там автоматически). Обратите внимание на то, что вы можете просматривать значения не только переменных, но и выражений типа х*(y+z). Единственное ограничение — выражение не может содержать вызовов функций, поскольку это может вызвать побочный эффект, связанный с незапланированным вызовом функции, описанный выше, в подразделе ''Использование директивы Assert". Допускается также просмотр значений записей, массивов и других структурированных элементов.

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

var

BigArray: array[1..1000] of Integer;

Вы не можете просмотреть массив BigArray, так как 1 000 элементов просто не поместятся в окне (да и пролистать ненужные вам 825 элементов — работенка немалая!) Вместо этого вы просите показать вам значение BigArray [826] и устанавливаете параметр Repeat Count равным 8. При этом вам будут показаны значения восьми элементов массива — от 826 по 833.

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