Доклад
на тему: Турбо отладчик (Turbo Debugger)
Отладка - это процесс нахождения и исправления ошибок в программе. Нет ничего необычного в том, что поначалу поиск и устранение ошибок занимают больше времени, чем написание программы.
Отладка не является точной наукой. Часто лучшее средство отладки находится в голове у программиста. Тем не менее, систематический метод отладки может дать некоторые преимущества.
Процесс отладки в общем случае можно разделить на четыре этапа:
1. Обнаружение ошибки.
2. Поиск ее местонахождения.
3. Определение причины ошибки.
4. Исправление ошибки.
Окна Турбо отладчика
Сегодня многие программные продукты работают с окнами, но Турбо отладчик делает это лучше. Турбо отладчик выводит в меню (локальных и глобальных) всю информацию и данные, работает с диалоговыми окнами (которые используются для задания или ввода информации) и другими окнами. В Турбо отладчике используется множество различных типов окон. Тип окна зависит от того, какого рода информацию он содержит. Открывать и закрывать все окна можно с помощью команд меню (или соответствующих им сокращений - оперативных клавиш). Большинство окон Турбо отладчика (15 типов окон) выводятся из меню View (Обзор). Другой класс окон, который называется окнами проверки (Inspector), выводится при выборе элемента меню Data│Inspect (Данные│Проверка) или команды локального меню Inspect.
Окна меню View
Перечислим типы окон, которые вы можете открыть из меню View(Обзор).
┌────────────────────┐
Точки останова │ Breakpoints│
Стек │ Stack │
Регистрация │ Log │
Выражения просмотра │ Watches │
Переменные │ Variables │
Модуль │ Module... F3 │
Файл │ File... │
ЦП │ CPU│
Дамп │ Dump│
Регистры │ Registers│
Сопроцессор│ Numeric processor │
Протоколвыполнения│ Execution history │
Иерархия│ Hierarchy │
Сообщения Windows │ Windows messages │
"Карман" │ Clipboard│
Другое │ Another>│
└────────────────────┘
Когда вы открываете одно (или более) из этих окон, их можно перемещать, менять размер, закрывать и выполнять другие операции с помощью команд меню Window (Окно) и Ё (System - Система), о которых рассказывается в разделе "Работа с окнами".
Окно Module
В окне Module(Модуль) на экран выводится код отлаживаемой программы. Вы можете перемещаться по этому модулю и просматривать данные и код, позиционирую курсор на именах переменных программы и давая соответствующие команды локальных меню.
В окне Module вы вероятно будете проводить больше времени, чем в окнах других типов, поэтому стоит потратить время и изучить различные команды локальных меню, доступных для этого типа окна.
Для того, чтобы открыть окно Module, можно также нажать клавишу F3.
Окно Wathes
В окне Wathes (Просмотр), которое называют также окном наблюдения, выводятся переменные и их изменяющиеся значения. Нажав клавиши Ctrl-W при позиционировании курсора на имени переменной вокне Module (Модуль), вы можете добавить в окно Watches новую пе ременную.
Окно Breakpoints
В окне Breakpoints (Точки останова) выводятся установленные вами точки останова. Точка останова определяет то место в вашей программе, где остановлено выполнение программы. При этом вы мо жете проверить состояние программы. В левой области окна перечисляются позиции в программе каждой точки останова (или показано, что это глобальная точка останова). В правой области данного окна показаны условия, при которых срабатывает текущая (подсвеченная) точка останова.
Используйте данное окно для изменения, удаления или добавления точек останова.
Окно Stack
В окне Stack (Стек) выводится текущее состояние стека. При этом внизу указаны самые первые вызовы функций (в программах на языке Си и C++ это функция main), а затем - все последующие вызовы в том порядке, как они выполнялись.
Вы можете проверить исходный код любой указанной в стеке функции, переведя на нее подсветку и нажав клавиши Ctrl-I.
Подсветив имя функции в стеке и нажав клавиши Ctrl-I, вы открываете окно Variables (Переменные), в котором выводятся переменные, глобальные относительно программы, переменные, локальные относительно функции, и аргументы вызова функции.
Окно Log
В окне Log (Регистрация) выводится содержимое протокола (списка) регистрации сообщений. Протокол содержит пролистываемый список сообщений и информацию, сгенерированную при вашей работе с Турбо отладчиком. Там сообщается, например, о том, почему остановилась ваша программа, о результатах срабатывания точек останова и содержимом окон, которые вы сохранили в протоколе регистрации.
Окно Log можно использовать для получения информации об использовании памяти и модулях прикладной программы Windows.
Данное окно позволяет вам вернуться назад и посмотреть, что привело к текущему состоянию.
Окно Variables
В окне Variables (Переменные) выводятся переменные, доступные в данной точке вашей программы. В верхней области окна содержатся глобальные переменные. В нижней области показаны переменные, локальные по отношению к текущей функции или модулю (если они есть).
Данное окно полезно использовать, когда вы хотите найти функцию или переменную и знаете, с каких символов начинается ее имя (например, "abc"), но не помните точного имени. Вы можете войти в область глобальных идентификаторов данного окна и быстро найти то, что вам требуется.
Окно File
В окне File (Файл) выводится содержимое файла на диске. Вы можете просматривать содержимое файла в виде непосредственных шестнадцатиричных байт или в виде кода ASCII (текстовый вид). Вы можете выполнить поиск конкретного текста или последовательности байтов, а также непосредственно скорректировать любую часть файла на диске.
Это средство полезно использовать, если вы отлаживаете программу, использующую файлы на диске, и хотите изменить содержимое программы, изменив содержимое одного из ее файлов. Можно также исправить ошибку в содержимом файла, либо проверить файл, созданный программой, чтобы убедиться в правильности его содержимого.
Окно CPU
Окно CPU (ЦП) показывает текущее состояние центрального процессора (ЦП). Это окно содержит пять областей, в одной из которых показаны шестнадцатиричные байты данных, в другой выводится в непосредственном виде (шестнадцатиричные байты) содержимое стека, в третьей - содержимое регистров ЦП, в четвертой - машинные инструкции, а в пятой - содержимое флагов ЦП.
Если вы используете TDW, то в окне CPU выводится шестая область, в которой показываются селекторы памяти защищенного режима.
Окно CPU полезно использовать, когда вы хотите просмотреть точную последовательность инструкций, которую образует строка исходного кода программы, или структуру данных. Если вы знакомы с кодом Ассемблера, это может помочь вам выявить трудноуловимые ошибки. Однако для отладки большинства программ данное окно вам не понадобиться.
Иногда Турбо отладчик открывает окно CPU автоматически, если ваша программа останавливается на инструкции в середине строки исходного кода.
Окно CPU
Окно CPU (ЦП) показывает текущее состояние центрального процессора (ЦП). Это окно содержит пять областей, в одной из которых показаны шестнадцатиричные байты данных, в другой выводится в непосредственном виде (шестнадцатиричные байты) содержимое стека, в третьей - содержимое регистров ЦП, в четвертой - машинные инструкции, а в пятой - содержимое флагов ЦП.
Если вы используете TDW, то в окне CPU выводится шестая область, в которой показываются селекторы памяти защищенного режима.
Окно CPU полезно использовать, когда вы хотите просмотреть точную последовательность инструкций, которую образует строка исходного кода программы, или структуру данных. Если вы знакомы с кодом Ассемблера, это может помочь вам выявить трудноуловимые ошибки. Однако для отладки большинства программ данное окно вам не понадобиться.
Иногда Турбо отладчик открывает окно CPU автоматически, если ваша программа останавливается на инструкции в середине строки исходного кода.
Окно Registers
В окне Registers (Регистры) выводится содержимое регистров и флагов процессора (ЦП). Данное окно содержит две области, которые эквивалентны областям регистров и флагов окна CPU (ЦП). Это окно можно использовать, когда вам нужно просмотреть содержимое регистров, и вас не интересует прочая информация о состоянии центрального процессора. Значение любого регистра или флага можно изменить с помощью команды локального меню.
Окно NumericProcessor
В окне NumericProcessor (Арифметический сопроцессор) выводится текущее состояние арифметического сопроцессора. Это окно содержит три области. В одной из областей показывается содержимое регистров с плавающей точкой, в другом выводятся значения флага состояния, а в третьей - значения управляющих флагов.
Данное окно может помочь вам выявить ошибки в программе, работающей с числами с плавающей точкой. Вы должны иметь углубленное представление о внутренней работе математического сопроцессора. Только в этом случае данное окно принесет вам пользу.
Окно ExecutionHistory
В окне ExecutionHistory (Протокол выполнения) выводится код Ассемблера и и исходные строки вашей программы, вплоть до последней выполняемой строки. Верхняя область содержит выполненный код Ассемблера (вы можете пройти его повторно). В нижней области выводится следующее:
1. Выполняете вы трассировку или выполнение по шагам.
2. Строка исходного кода для следующей выполняемой инструкции.
3. Номер строки исходного кода.
Вы можете анализировать содержимое данного окна или использовать его для выполнения вашей программы до конкретной точки.