Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Руководство пользователя 16 страница



 

отладки второго монитора. Этот монитор должен быть монохромным

дисплеем (поскольку использует память, отличную от цветного дисп-

лея), и вам нужно будет запустить IDE с параметром /D. В режиме с

двумя мониторами экран IDE выводится на монохромном экране, вывод

вашей программы - на цветном экране, а переключение экранов не

выполняется.

 

 

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

─────────────────────────────────────────────────────────────────

 

Выполнение программы по шагам или ее трассировка могут по-

мочь вам найти ошибки в алгоритме программы, но обычно желательно

также знать, что происходит на каждом шаге со значениями отдель-

ных переменных. Например, при выполнении по шагам цикла for по-

лезно знать значение переменной цикла. IDE Borland Pascal имеет

два инструментальных средства для проверки содержимого переменных

программы: окно Watches (Просмотр) и диалоговое окно Evaluate and

Modify (Вычисление и модификация).

 


 

B.Pascal 7 & Objects /UG - 154 -

 

Что такое выражение?

─────────────────────────────────────────────────────────────────

 

Оба средства вычисление и просмотра работают на уровне выра-

жений, поэтому важно определить, что считается выражением. Выра-

жение состоит из констант, переменных и структур данных, скомби-

нированных с помощью операций и большинства встроенных функций.

Почти все, что вы можете использовать в правой части оператора

присваивания, может также использоваться в качестве отладочного

выражения. Точные спецификации показаны в Таблице 6.1.

 

Элементы выражений отладчика Таблица 6.1

┌──────────────────────────┬────────────────────────────────────┐

│ Элемент выражения │ Допустимые значения │

├──────────────────────────┼────────────────────────────────────┤



│ Константы │ Все допустимые типы: Boolean, Byte,│

│ │ Char, перечислимый тип, Integer,│

│ │ Longint, Real, Shortint, Word и│

│ │ строковый тип. │

├──────────────────────────┼────────────────────────────────────┤

│ Переменные │ Все типы, включая типы, определен-│

│ │ ные пользователям. │

│ │ │

│ целочисленный тип │ Любое целочисленное выражение с пе-│

│ │ ременными границами диапазона. │

│ │ │

│ тип с плавающей точкой│ Любые выражения с плавающей точкой│

│ │ или целочисленные выражения; лишние│

│ │ значащие цифры отбрасываются. │

│ │ │

│ символьный тип │ Любое символьное выражение, включая│

│ │ печатаемые символы в одинарных ка-│

│ │ вычках, целочисленные выражения,│

│ │ тип которых приведен к типу Char, и│

│ │ контанты ASCII (#xx). │

│ │ │

│ булевский тип │ True, False и все булевские выраже-│

│ │ ния. │

│ │ │

│ перечислимый тип │ Любые совместимые перечислимые кон-│

│ │ станты или целочисленные выражения│

│ │ в рамках диапазона, тип которых│

│ │ приведен к совместимому перечисли-│

│ │ мому типу. │

│ │ │

│ указатель │ Любые совместимые указатели или вы-│

│ │ ражения с приведенными к ним типа-│

│ │ ми; функция Ptr с соответствующим│

│ │ параметрами. │

│ │ │

│ строковый тип │ Любая строковая константа (текст в│

│ │ одинарных кавычках); строковые пе-│

│ │ ременные; строковые выражения, сос-│


 

B.Pascal 7 & Objects /UG - 155 -

 

│ │ тоящие из конкатенированных строко-│

│ │ вых констант и переменных. │

│ │ │

│ множество │ Любая множественная константа; лю-│

│ │ бое выражение, совместимое с мно-│

│ │ жественным типа, в котором исполь-│

│ │ зуются операции +, - и *. │

├──────────────────────────┼────────────────────────────────────┤

│ Приведение типа │ Соблюдаются стандартные правила│

│ │ Паскаля. │

├──────────────────────────┼────────────────────────────────────┤

│ Операции │ Все операции Borland Pascal. │

├──────────────────────────┼────────────────────────────────────┤

│ Встроенные функции │ Все функции, допустимые в выражени-│

│ │ ях-константах. │

├──────────────────────────┼────────────────────────────────────┤

│ Массивы │ Массивы Borland Pascal - Mem, MemL,│

│ │ MemW. │

└──────────────────────────┴────────────────────────────────────┘

 

 


 

B.Pascal 7 & Objects /UG - 156 -

 

Просмотр выражений

─────────────────────────────────────────────────────────────────

 

Если вы хотите отслеживать значение переменной или выражения

при выполнении программы по шагам, то можете открыть окно прос-

мотра Watches. Это окно IDE показывает переменные и их значения в

каждый конкретный момент.

 

Чтобы открыть окно Watches, выберите команду Window│Watch.

IDE открывает активное окно Watches без активных записей. Если вы

выберите переменную для просмотра, IDE автоматически открывает

окно Watches (если вы этого еще не сделали).

 

Добавление просматриваемого выражения

 

Чтобы добавить в окно Watches переменную, выберите команду

Debug│Watch│Add Watch или нажмите клавиши Ctrl+F7. Если окно

Watches является активным окном, вы можете добавить выражение

просмотра, нажав клавишу Ins. Отладчик открывает диалоговое окно,

запрашивающее у вас тип просматриваемого выражения. По умолчанию

выражением считается слово в позиции курсора в текущем окне ре-

дактирования. Просматриваемые выражения, которые вы отслеживали

ранее, сохраняются в списке протокола.

 

Отслеживание текущего просматриваемого выражения

 

Последнее добавленное или модифицированное просматриваемое

выражение является текущим просматриваемым выражением, которое

указывается выводимым слева от него символом жирной левой точки.

Если окно Watches активно, вы можете также удалить текущее выра-

жение, нажав клавишу Del или Ctrl+Y. Чтобы удалить все просматри-

ваемые выражения, выберите команду Debug│Watch│Remove All

Watches.

 

Редактирование просматриваемых выражений

 

Чтобы отредактировать просматриваемое выражение, нужно дваж-

ды щелкнуть на этом выражении "мышью" или сделать это выражение

текущим, затем нажать клавишу Enter или выбрать команду Debug│

Watch│Edit Watch. Отладчик открывает диалоговое окно, аналогичное

тому, которое используется для добавления просматриваемого выра-

жения, которое позволяет вам отредактировать текущее выражение.

При выборе командной кнопки OK или нажатии клавиши Enter отредак-

тированное выражение заменяет оригинал.

 

Форматирование просматриваемых выражений

 

Окно Watches позволяет вам несколькими способами форматиро-

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

спецификаторов формата. Например, хотя целочисленные значения вы-

водятся обычно в десятичном виде, указав после него,H, вы можете

задать вывод выражения в шестнадцатиричном формате. Допустимые

спецификаторы формата и их действие перечисляются в Таблице 6.2.


 

B.Pascal 7 & Objects /UG - 157 -

 

Спецификаторы формата в выражениях отладчика

Таблица 6.2

┌──────────────┬─────────────────────┬──────────────────────────┐

│ Символ │ Тип, на который │ Функция │

│ │ он влияет │ │

├──────────────┼─────────────────────┼──────────────────────────┤

│ $, H или X │ целочисленные типы │ Шестнадцатиричный. Выво-│

│ │ │ дит целочисленные значе-│

│ │ │ ния в префиксом $, вклю-│

│ │ │ чая те, которые содержат-│

│ │ │ ся в структуре данных. │

├──────────────┼─────────────────────┼──────────────────────────┤

│ C │ Char, строковые │ Символьный. Выводит спе-│

│ │ типы │ циальные символы для ко-│

│ │ │ дов ASCII 0..31. По умол-│

│ │ │ чанию такие символы выво-│

│ │ │ дятся в виде значений│

│ │ │ #xx. │

├──────────────┼─────────────────────┼──────────────────────────┤

│ D │ целочисленные │ Десятичный. Выводят цело-│

│ │ типы │ численные значения в де-│

│ │ │ сятичном виде (включая│

│ │ │ те, которые содержатся в│

│ │ │ структурах данных). │

├──────────────┼─────────────────────┼──────────────────────────┤

│ Fn │ с плавающей точкой │ С плавающей точкой. Выво-│

│ │ │ дит n значащих цифр, где│

│ │ │ n лежит в диапазоне 2..18│

│ │ │ (по умолчанию - 11). │

├──────────────┼─────────────────────┼──────────────────────────┤

│ nM │ все │ Дамп памяти. Выводит n│

│ │ │ байт памяти, начиная с│

│ │ │ адреса, указываемого вы-│

│ │ │ ражением. Если n не зада-│

│ │ │ но, то по умолчанию оно│

│ │ │ равно значению размера в│

│ │ │ байтах типа переменной. │

├──────────────┼─────────────────────┼──────────────────────────┤

│ P │ указатели │ Указатель. Выводит указа-│

│ │ │ тели по адресу сегм:смещ│

│ │ │ (на не Ptr(сегм:смещ),│

│ │ │ как это делается по умол-│

│ │ │ чанию. │

├──────────────┼─────────────────────┼──────────────────────────┤

│ R │ записи, объекты │ Запись. Выводит имена по-│

│ │ │ лей, например, (X:1;│

│ │ │ Y:10; Z:5) вместо (1, 10,│

│ │ │ 5). │

├──────────────┼─────────────────────┼──────────────────────────┤

│ S │ Char, строки │ Строки. Выводит символы│

│ │ │ ASCII 0..31 в виде #xx.│

│ │ │ Использует только для мо-│

│ │ │ дификации дампов памяти│


 

B.Pascal 7 & Objects /UG - 158 -

 

│ │ │ (см. выше nM). │

└──────────────┴─────────────────────┴──────────────────────────┘

 

 

Вычисление и модификация

─────────────────────────────────────────────────────────────────

 

Кроме добавления просматриваемых выражений при выполнении

программы, отладчик имеет средство, позволяющее вам в любой мо-

мент вычислять выражения и изменять на этапе выполнения значения

переменных.

 

Вычисление выражений

 

Чтобы вычислить выражение, выберите команду Debug│Evaluate/

Modify или нажмите клавиши Ctrl+F4. Отладчик выводит диалоговое

окно Evaluate and Modify (Вычисление и модификация). По умолчанию

слово в позиции курсора в текущем окне редактирования выводится

подсвеченным в поле Expression (Выражение). Вы можете отредакти-

ровать это выражение, набрать другое выражение или выбрать вычис-

ляемое вами ранее выражение из списка протокола.

 

Когда вы нажимаете Enter или щелкаете "мышью" на командной

кнопке Evaluate, текущее значение выражения в поле Expression по-

казывается в поле Result.

 

Допустимые выражения для вычисления подчиняются тем же пра-

вилам, что и выражения для сравнения. Для вывода результатов вы-

числения выражения действую спецификаторы формата, перечисленные

в Таблице 6.2.

 

Модификация переменных

 

Во время отладки с помощью диалогового окна Evaluate and

Modify вы можете изменить значение переменной. Введите переменную

в поле Expression, затем в поле New Value наберите новое значение.

 

При изменении значений переменных следует иметь в виду сле-

дующее:

 

* Вы можете изменять только отдельные переменные или элемен-

ты массивов или записей, но не сами массивы и записи.

 

* Выражения в поле New Value должны отвечать ограничениям

для выражений, перечисленных в Таблице 6.1.

 

* Выражение в поле New Value (Новое значение) должно в ре-

зультате вычисления давать результат, совместимый по прис-

ваиванию с переменной, которой вы хотите ее присвоить.

Здесь можно руководствоваться следующим правилом: если


 

B.Pascal 7 & Objects /UG - 159 -

 

присваивание дает при компиляции ошибку, то оно не являет-

ся допустимым значением модификации.

 

 


 

B.Pascal 7 & Objects /UG - 160 -

 

Использование точек останова

─────────────────────────────────────────────────────────────────

 

Borland Pascal дает вам возможность устанавливать в свое

программе для целей отладки точки останова. Точка останова - это

обозначенная в коде программы позиция, в которой вы хотите прек-

ратить выполнение программы и вернуть выполнение отладчику. В

этом смысле точка останова работает аналогично команде Go to

Cursor, при которой программа выполняется обычным путем до дости-

жения определенной точки. Основное различие состоит в том, что вы

можете задать несколько точке останова и точки останова, которые

будут срабатывать не при каждом их достижении.

 

 

Задание точек останова

─────────────────────────────────────────────────────────────────

 

Чтобы установить в своем в своем коде точку останова, пере-

местите курсор на той строке, где вы хотите остановиться. Строка

должна содержать выполняемый код и не может быть комментарием,

описанием или пустой строкой. Выбор команды Toggle Breakpoint в

локальном меню окна редактирования или нажатие клавиш Ctrl+F8 ус-

танавливает на строке точку останова, которая обозначается подс-

веткой всей строки.

 

Теперь при выполнении программы из IDE она будет останавли-

ваться при достижении данной строки, но перед ее выполнением.

Строка, содержащая точку останова, выводится при этом в окне ре-

дактирования как строка выполнения. В этот момент вы можете вы-

полнить любые другие действия по отладке (выполнение программы по

шагам, трассировку, просмотр и вычисление).

 

 

Отмена точке останова

─────────────────────────────────────────────────────────────────

 

Чтобы отменить точку останова, поместите курсор на содержа-

щую ее строку и выберите в локальном меню окна редактирования ко-

манду Toggle Breakpoint или нажмите клавиши Ctrl+F8.

 

 

Модификация точек останова

─────────────────────────────────────────────────────────────────

 

В процессе сеанса отладки IDE отслеживает все точки остано-

ва. Вместо того, чтобы шарить по исходному коду в поиске точек

останова, она обслуживать точки останова в одном диалоговом окне

Breakpoints. Для вывода диалогового окна Breakpoints выберите ко-

манду View│Breakpoints. В этом диалоговом окне вы можете устанав-

ливать, удалять, редактировать и просматривать свои точки остано-

ва.

 

Командные кнопки диалогового окна Breakpoints работают сле-


 

B.Pascal 7 & Objects /UG - 161 -

 

дующим образом:

 

* Чтобы добавить новую точку останова, подсветите пустую

строку в списке и выберите командную кнопку Edit.

 

* Чтобы отменить точку останова, подсветите ее и выберите

кнопку Clear.

 

* Чтобы модифицировать существующую точку останова, подсве-

тите ее и выберите командную кнопку Edit.

 

* Чтобы найти в своем исходном коде точку останова, подсве-

тите ее и выберите кнопку View.

 

* Чтобы удалить все точки останова, выберите командную кноп-

ку Clear All.

 

 

Создание условный точек останова

─────────────────────────────────────────────────────────────────

 

 

Точки останова, добавленные командой Toggle Breakpoint, яв-

ляются безусловными: когда вы попадаете на эту строку, отладчик в

любом случае останавливает программу. Если вы редактируете новую

или существующую точку останова, то у вас есть две дополнительные

возможности - с помощью параметров диалогового окна Edit

Breakpoint вы можете создать условные точки останова. В этих точ-

ках останова вы можете задать два вида условий: счетчик проходов

и логические условия.

 

Подсчет числа проходов

 


Дата добавления: 2015-09-30; просмотров: 28 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.043 сек.)







<== предыдущая лекция | следующая лекция ==>