Страница 43 из 69
отлаживаться как во встроенном в ТС отладчике, так и в стандарт-
ном отладчике Turbo.
Если флаг находится в позиции Автономно, то программы могут
быть отлажены только с помощью отладчика Turbo, хотя могут запус-
каться в ТС. При положении флага "Выключено" программы не могут
быть отлажены по той причине, что в .EXE файле нет информации по
отладке.
Свопинг экрана (Display Swapping)
-----------------------------------------------------------------
Debug/Display Swapping ("подкачка" экрана при работе в сеан-
се отладки) имеет трехпозиционный флаг, который устанавливается в
следующих положениях: Smart (установлена по умолчанию); Always
(всегда); None (выключено).
При запуске своей программы в режиме отладки с установленным
по умолчанию флагом в положении Smart, отладчик просматривает ис-
полняемый код с тем, чтобы определить, будет код генерировать вы-
вод данных на экран или нет. Если код выполняет вывод данных на
экран (или если он вызывает функцию), то экран заменяется с экра-
на редактирования на пользовательский экран на время, достаточное
для вывода данных, затем возвращается экран редактирования. В
других случаях свопинга экрана не происходит.
Примечание: Smart, что дословно означает "сообразительный",
не во всех случаях отвечает своему названию:
- этот режим производит замену экрана при вызове любой функ-
ции даже в том случае, когда вызываемая функция не выводит данные
на экран;
- в некоторых случаях экран редактора может быть модифициро-
ван без замены. Например, когда происходят выдачи на экран во
время прерывания работы сервисной программы по таймеру.
При положении флага Always экран будет заменяться, когда бу-
дет выполняться оператор. Вы можете использовать этот режим каж-
дый раз, когда желаете переписать экран редактора вашей работаю-
щей программой.
- 353,354 -
При положении флага None отладчик не заменяет экран. Этот
режим мог бы использоваться для отладки сегментов кода, который,
по вашему мнению, не должен выводиться на экран.
Примечание: Если вы производите отладку в двухмониторном режиме
(т.е. использовали командную строку ТС /d ключ), то
можете увидеть вывод данных своей программы на одном
мониторе, а экран ТС на другом. Следовательно, ТС ни-
когда не заменяет экранов, а потому Debug/Screen
Swapping в этом случае неэффективен.
Регенерация дисплея (Refresh Display)
-----------------------------------------------------------------
Если экран редактора ошибочно переписан, вы можете использо-
вать эту опцию для восстановления предудыщего содержания.
Меню прерываний/слежения (Break/Watch Menu)
-----------------------------------------------------------------
Меню включает в себя команды, управляющие точками прерывания
и контрольными (следящими) выражениями.
Точка прерывания представляет собой то место в программе,
где происходит ее останов с тем, чтобы дать вам время проверить
значение критических переменных и выражений. Это нужно для того,
чтобы вы могли убедиться, что ваша программа работает так как на-
до.
Контрольная точка обозначается подсветкой контрольной точки.
Когда программа останавливается на точке прерывания, то ее подс-
ветка становится незаметной из-за полосы выполнения, но снова по-
является, когда полоса выполнения начинает двигаться.
Контрольное выражение представляет собой выражение, чье зна-
чение отображается в окне Watch. При останове программы контроль-
ное значение перевычисляется. Правила ввода правильного контроль-
ного выражения аналогичны правилам Debug/Evaluate
(отладки/оценки) за исключением того, что контрольное выражение
может не содержать побочных эффектов типа i++. Символы конверсно-
- 355,356 -
го типа, а также повторный счет могут быть использованы в конт-
рольных выражениях также, как и в Debug/Evaluate. Например:
i,x
отображает содержание целого числа i в шестнадцатиричном формате.
Если вы желаете ввести дополнительные выражения в окно
Watch, то можете увеличить его до максимальных размеров (около
половины экрана) с помощью опции изменения размеров окон сервис-
ной программы TCINST. Если вы вводите большее количество выраже-
ний, чем может поместиться в окне, то некоторые выражения исчеза-
ют из окна. Для их просмотра в окне Watch используются клавиши
"Страница вверх", "Страница вниз", "Стрелка вверх", "Стрелка
вниз".
Текущее контрольное выражение в окне Watch выделяется в слу-
чае, если окно Watch активно - полосой подсветки, если окно Watch
не активно - знаком "пуля" () в левой колонке.
ЙДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД»
є Files Edit Run Compile Project Options Debug є Break/watch є
єДДДДДДДДДДДДДДДДДДДДДДДДД Edit ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДє
АДДДДДЩ є
є Line 1 Col 1 Insert Indent Tab Fill єAdd watch CtrlF7є
є єДДДДДДДДДДДДДДДДДДДДДДДДє
є єDelete watch є
є єEdit watch є
є єRemove all watches є
є є є
є єToogle breakpoint CtrlF8є
є єClear all breakpoints є
є єView next breakpoints є
є АДДДДДДДДДДДДДДДДДДДДДДДДє
є є
ННННННННННННННННННННННННННН Watch НННННННННННННННННННННННННННННН
є є
єAlt: F1-Last help F3-Pick F6-Swap F7/F8-Prv/Next err F9-Compileє
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Рисунок 5.23. Меню Break/Watch.
- 357,358 -
Команда "Add Watch"
-----------------------------------------------------------------
Эта команда позволяет вывести контрольное выражение в окно
Watch. При выборе вами этой команды отладчик открывает окно в
верхней части экрана и запрашивает ввод контрольного выражения.
Текущим выражением является слово, на котором стоит курсор в эк-
ране редактирования. После того, как вы наберете правильное выра-
жение, нажмите Ввод. Отладчик добавит выражение и его текущее
значение в окно Watch.
"Горячим ключом" для этой команды является Ctrl-F7. Кроме
того, если окно Watch активно, то вы можете ввести новое конт-
рольное выражение, нажав на Ins (Вст), либо Ctrl-N.
Стирание контрольных выражений (Delete Watch)
-----------------------------------------------------------------
Эта команда стирает контрольные выражения из окна Watch. Для
того, чтобы вы могли использовать эту команду, вы должны видеть
окно Watch, т.е. в этом случае окно редактирования не может быть
раскрыто на весь экран дисплея. Если вы находитесь в окне Watch,
то текущее контрольное выражение обозначается полосой подсветки,
если вы находитесь в экране Edit, то оно обозначается знаком "пу-
ли" () с левой стороны.
Для стирания контрольного выражения, отмеченного знаком "пу-
ли", выберите Break/Watch/Delete Watch, если вы находитесь в окне
Edit. Для стирания контрольного выражения, не являющегося теку-
щим, вы должны выйти в окно Watch, переместить полосу подсветки
на необходимое выражение и нажать либо Del, либо Ctrl-Y.
Редактирование контрольных выражений (Edit Watch)
-----------------------------------------------------------------
Эта команда позволяет вам редактировать текущее контрольное
выражение в окне Watch.
- 359,360 -
Когда вы выбираете Break/Watch (Edit Watch), отладчик откры-
вает всплывающее окно, содержащее копию текущего контрольного вы-
ражения. Отредактировав его, нажмите Ввод; Отладчик произведет
замену прежнего варианта контрольного выражения на новый отредак-
тированный вариант. Вы можете также редактировать контрольное вы-
ражение из окна Watch путем перемещения полосы подсветки на необ-
ходимое выражение и нажатия клавиши Ввод.