На этом шаге мы рассмотрим пункты меню View.
Большая часть окон отладчика Turbo Debugger вызывается из меню View (рисунок 1). Из этого меню вызывается 14 видов окон.
Рис.1. Меню View
Если вы открыли одно такое окно или более, вы можете перемещать их, изменять размеры, закрывать и управлять этими окнами самыми различными способами при помощи команд меню Window и º(System).
Перечислим назначение каждого подпункта меню.
Рис.2. Окно Module
Отображает текст программы, которую вы отлаживаете. Вы можете перемещаться по всему модулю и проверять данные и код, "указывая" имена переменных курсором и выполняя соответствующие команды локальных меню.
По всей вероятности, на работу в этом окне вы будете затрачивать больше всего времени, поэтому постарайтесь найти время, чтобы изучить все команды локальных меню для этого окна. Для того чтобы открыть окно модуля можно также использовать клавишу F3.
Рис.3. Окно Watches
Отображает переменные и их изменяющиеся значения. Для того чтобы занести переменную в это окно, надо установить на нее курсор и нажать клавиши Ctrl+W.
Рис.4. Окно Breakpoints
Отображает точки останова, заданные пользователем. Точка останова задает место в программе, где что-то должно произойти, то есть в этой точке выполнение программы приостанавливается, и вы можете проверить ее состояние. Данное окно можно использовать для переноса, удаления и добавления точек останова.
Более подробную информацию о любой процедуре или функции в стеке можно получить, установив курсор на ее имя и нажав клавиши Ctrl+I, которые вызовут команду Inspect (проверить).
Выделив имя функции в стеке и нажав Ctrl+L, вы тем самым откроете окно Variables, в котором показаны глобальные переменные программы, локальные переменные функции и аргументы, с которыми вызвана функция.
Это окно позволяет пользователю просматривать предысторию процесса и определять, что привело к текущему состоянию программы.
Рис.5. Окно Variables
Отображает все переменные, доступные в данной точке программы. В левом подокне содержатся глобальные переменные, а в правом - локальные переменные, если они имеются.
Это окно бывает полезно в тех случаях, когда необходимо найти некоторую функцию или переменную, про которую известно, что она начинается, скажем, с символов "abc", но точное ее имя забыто. В этом случае можно просмотреть содержимое подокна глобальных переменных и быстро найти то, что нужно.
Рис.6. Окно File
Отображает содержимое дискового файла. Файл можно просматривать как в шестнадцатеричном, так и в текстовом (ASCII) формате. Можно выполнять поиск какого-либо текста или последовательности байтов, а также непосредственно ставить "заплату" в любое место дискового файла.
Это бывает удобно при отладке программы, работающей с дисковыми файлами, поведение которой желательно изменить, заменив содержимое одного из ее файлов. Можно также исправить ошибку в файле или проверить файл, сформированный программой, чтобы убедиться в правильности его содержимого.
Окно процессора полезно использовать в том случае, когда желательно проверить точную последовательность машинных команд, которая составляет строку исходного текста, или последовательность байтов, которая составляет структуру данных. Если вы знаете язык ассемблера, это окно может помочь вам выявить некоторые виды тонких ошибок. Для отладки подавляющего большинства программ это окно не требуется.
Turbo Debugger иногда открывает окно CPU автоматически, когда программа останавливается на команде, находящейся в середине строки исходного кода.
Рис.7. Окно Dump
Отображает построчное содержимое области памяти. Можно просматривать данные в виде символов, шестнадцатеричных байтов, слов, двойных слов и в любом формате с плавающей точкой. (Это окно аналогично подокну данных (Data) окна процессора.) Его можно использовать в тех случаях, когда желательно просмотреть некоторые исходные данные, не заботясь об остальном состоянии процессора. В локальном меню имеются команды, которые позволяют модифицировать отображаемые данные, менять формат их отображения на экране и манипулировать блоками данных.
Рис.8. Окно Registers
Отображает состояние регистров и флагов процессора. Это окно имеет два подокна, которые аналогичны подокнам регистров и флагов окна процессора. Используйте это окно в тех случаях, когда необходимо проверить состояние регистров, не заботясь о состоянии остальной части процессора. С помощью команд локального меню можно изменять значения любых регистров и флагов процессора.
Рис.9. Окно Numeric Processor
Отображает текущее состояние арифметического сопроцессора. Это окно имеет три подокна: в одном из них отображается содержимое регистров данных с плавающей точкой, в другом - значения флагов состояния и в третьем - значения флагов управления.
Это окно поможет вам диагностировать ошибки в программах, обрабатывающих числа с плавающей точкой. Однако для того чтобы извлечь реальную пользу их этого окна, необходимо иметь достаточно хорошее представление о работе арифметического сопроцессора.
Данное окно показывает взаимосвязи между объектами или типами класса, используемыми в текущем модуле. Оно также позволяет рассматривать любой объект или тип класса, а также соответствующие им компонентные поля или компонентные данные, а также их правила или компонентные функции, с использованием для этого локальных меню, принадлежащих меню Hierarchy.
Рис.10. Меню Another
Не удивляйтесь, если Turbo Debugger откроет одно из этих окон самостоятельно. Он делает это в некоторых случаях в ответ на команду пользователя.
На следующем шаге мы рассмотрим меню Run.