Интерфейс отладчика
Среда Turbo Debugger включает в себя набор меню, диалоговых
окон и специальных окон отладчика.
Работа с меню
Команды глобальных меню Turbo Debugger выводятся в верхней
части экрана в строке меню. Если вы не находитесь в диалоговом
окне, то эти команды всегда доступны. Чтобы открыть меню Turbo
Debugger, нажмите F10, с помощью стрелой переместитесь в нужному
пункту и нажмите Enter. После F10 для перехода к нужному пункту
можно также нажать его подсвеченную букву, либо сразу нажмите
Alt+буква (без F10). Системное меню выбирается по Alt+пробел. Меню открывается также щелчком "мышью" на соответствующем пункте.
Окна Turbo Debugger
Для вывода информации об отлаживаемой программе в Turbo Debugger используется набор окон. Для облегчения отладки служат команды управления окнами, которые находятся в меню Window и System. Каждое открываемое окно имеет номер, указанный в его правом
верхнем углу. Нажатием клавиши Alt в сочетании с номером окна вы
можете активизировать любое из первых 9 окон. Список открытых
окон содержится в нижней половине меню Window. Чтобы открыть
конкретное окно, нажмите в меню Window цифру номера окна. Если
окон больше 9, в этом меню выводится команда Window Pick, выводящая меню окон.
Клавиша F6 (или команда Window Next) позволяет циклически
перемещаться по открытым на экране окнам. Окно может иметь несколько областей. Для перемещения между областями используйте клавиши Tab или Shift+Tab, либо Window Next. Курсор в областях перемещается с помощью стандартных клавиш перемещения курсора.
При открытии нового окна оно выводится в месте текущего расположения курсора. Переместить его в другое место можно с помощью
команды Window Size/Move и клавиш стрелок, либо сразу нажмите
Shift и сдвигайте окно стрелками. Для быстрого увеличения или
уменьшения окна выберите Window Zoom (F5) или щелкните "мышью" на
кнопке минимизации/максимизации в верхнем правом углу окна.
Если вы по ошибке закрыли окно, вернуться в последнее окно
можно с помощью команды Window Undo Close (Alt+F6). Когда программа затирает своим выводом экран операционной среды (при выключенном переключении экрана), вы можете очистить его с помощью
System Repaint Desktop. Для возврата к используемой по умолчанию
схемы окон Turbo Debugger выберите System Restore Standard.
Каждое окно Turbo Debugger имеет специальное оперативное меню SpeedMenu, содержащее команды, относящиеся к данному окну. Области окон также могут иметь свои меню. Для доступа к SpeedMenu
активного окна или области вы можете нажать в окне правую кнопку
"мыши", либо нажать клавиши Alt+F10, либо нажать Ctrl и подсвеченную букву команды SpeedMenu (для этого должно быть разрешено
действие команд-сокращений).
Окна меню View
Меню View является точкой входа в большинство окон Turbo Debugger. Перечислим их кратко. С помощью команды View Another вы
можете дублировать на экране окна Dump, File и Module.
Окно Breakpoints
Используется для установки, модификации или удаления точек
останова. Точка останова определяет то место в программе, где отладчик приостанавливает выполнение программы. Это окно имеет две
области. Справа перечислены условия и действия точек останова,
слева - все точки останова.
Окно Stack
Показывает текущее состояние программного стека. Первая вызванная функция показывается в нижней части окна, а выше ее - каждая последующая. Подсвечивая эти функции и нажимая Ctrl+I вы можете проверять исходный код. Кроме того, можно открыть окно Variables и вывести все локальные переменные и аргументы функции (Ctrl+L).
Окно Log
Выводит содержимое журнала сообщений с прокручиваемым списком сообщений и информацией, сгенерированной при работе с отладчиком. Это окно можно также использовать для получения информации
об использовании памяти, модулях и оконных сообщения приложения
Windows.
Окно Watches
Показывает значения переменных и выражений. Введя в это окно
выражения, вы можете отслеживать их значения при выполнении программы. Окно добавляется с помощью клавиш Ctrl+W при установке курсора на переменной в окне Module.
Окно Variables
Выводит все переменные в данном контексте программы. В верхней области окна перечисляются глобальные переменные, а в нижней
- локальные. Это полезно использовать для поиска функции или
идентификатора, имени которых вы точно не помните.
Окно Module
Одно из важнейших окон Turbo Debugger, показывающее исходный
код отлаживаемого программного модуля (включая DLL). Модуль должен компилироваться с отладочной информацией.
Окно File
Выводит содержимое любого файла на диске. В нем можно просматривать шестнадцатиричные байты или текст ASCII и искать нужные
байтовые последовательности.
Окно CPU
Выводит текущее состояние процессора. Окно имеет 6 областей,
где выводятся дизассемблированные инструкции, селекторы Windows
(только в TDW), шестнадцатиричные данные, стек в шестнадцатиричном виде, регистры ЦП и флаги процессора. Это окно полезно использовать при отладке программ на ассемблере или просмотре точно последовательности инструкций.
Окно Dump
Выводит в шестнадцатиричном виде содержимое любой области
памяти (аналогично области окна CPU). Команды SpeeMenu этого окна
позволяют вам модифицировать данные и работать с блоками памяти.
Окно Registers
Показывает содержимое регистров (в области регистров) и флагов ЦП (в области флагов). С помощью команд SpeedMenu вы можете
изменить их значения.
Окно Numeric Processor
Показывает текущее состояние сопроцессора и имеет три области: содержимого регистров с плавающей точкой, значений флагов
состояния и значений управляющего флага. Это позволяет вам диагностировать проблемы в использующих сопроцессор подпрограммах.
См. файл TD_ASM.TXT.
Окно Execution History
Выводит последние выполненные машинные инструкции или исходные строки программы, номер строки исходного кода и следующую выполняемую инструкцию или строку кода. Используется для обратного
выполнения.
Окно Hierarchy
Выводит на экран дерево иерархии всех используемых текущим
модулем классов. Имеет область списка классов и дерева иерархии.
Это окно показывает взаимосвязь используемых в модуле классов.
Окно Windows Messages
Показывает список оконных сообщений программы Windows. Области этого окна показывают задание режима отслеживания сообщений, тип перехватываемых сообщений и перехваченные сообщения.
Окно Clipboard
Буфер Clipboard отладчика используется для для вырезания и
вставки элементов из одного окна отладчика в другое. Оно показывает вырезанные элементы и их типы. Скопированные в буфер элементы динамически обновляются.
Окна Inspector
Выводят текущее содержимое выбранной переменной. Его можно
открыть с помощью команды Data Inspect или Inspect меню SpeedMenu. Закрывается оно обычно по Esc или щелчком "мышью" на блоке
закрытия. При последовательном открытии нескольких окон Inspector
нажатием Alt+F3 или командой Window Close вы можете закрыть сразу
все эти окна. Окна Inspector выводят простые скалярные величины,
указатели, массивы, объединения, структуры, классы и объекты. Выбором команды Inspect в этом окне вы можете создать дополнительные окна Inspector.
Экран пользователя
Экран пользователя показывает полный экран вывода вашей
программы. Этот экран имеет такой же вид, как при выполнении
программы без Turbo Debugger. Чтобы переключиться в этот экран,
выберите команду Window User Screen. Для возврата в экран отладчика нажмите любую клавишу.
Специальные средства Turbo Debugger
Автоматическое дополнение имени
Когда в поле ввода выводится подсказка для ввода имени идентификатора, вы можете набрать часть имени, а затем нажать Ctrl+N.
Turbo Debugger заполнит остальную часть имени автоматически. При
этом набранная часть должна уникальным образом идентифицировать
имя. Если с набранных символов не начинается ни одно из имен, то
ничего не происходит. При наличии нескольких идентификаторов, соответствующих набранным вам символам, выводится список имен, из
которого вы можете выбрать нужное.
Выбор по набору
Некоторые окна позволяют вам начать набор нового значения,
не выбирая сначала команду SpeedMenu. Выбор по набору обычно применяется к наиболее часто используемым командам SpeedMenu.
Инкрементальное сопоставление
Это средство помогает вам находить записи в алфавитных списках. При наборе каждого символа полоса подсветки перемещается к
первому элементу, начинающемуся с выбранных вами букв. Позиция
курсора указывает, какую часть имени вы уже набрали. После подсветки вы можете нажать Alt+F10 или щелкнуть правой кнопкой "мыши". При этом выводится SpeedMenu, где вы можете выбрать команду,
соответствующую подсвеченному элементу.
Клавиатурные макрокоманды
Макрокоманды представляют собой просто определяемые вами
оперативные клавиши. Одной клавише вы можете назначить любую последовательность команд и нажатий клавиш.
Расположенная в меню Options команда Macros выводит всплывающее меню с командами для определения клавиатурных макрокоманд и
удаления ненужных: Create (Alt+=), Stop Recording (Alt+-), Remove
и Delete All. Команда Create начинает запись макрокоманды, а команда Stop Recording завершает ее (не используйте для завершения
записи команду Options Macro Stop Recording, так как она добавится к вашей макрокоманде). Delete All удаляет все текущие макрокоманды.
Работа с буфером Clipboard
Чтобы скопировать элемент в буфер Clipboard, позиционируйте
на элементе курсор, нажмите клавишу Ins для его подсветки, затем
нажмите клавиши Shift+F3. Чтобы вставить содержимое буфера в окно
или диалоговое окно, нажмите Shift+F4. Выводится диалоговое окно
Pick, содержащее список всех элементов буфера Clipboard и набор
кнопок с зависимой фиксацией, позволяющих вам выполнять различным
образом вставку элементов: String, Location и Contents. Это позволяет вам интерпретировать элемент, как вставляемый одним из
трех способов: как строку, как адрес, или как содержимое по адресу. Категории, которые вы можете использовать для вставки элемента, зависят от его типа и назначения.
Для вставки элемента в диалоговое окно, подсветите элемент,
выделите соответствующую категорию, затем нажмите клавишу Enter
или активизируйте кнопку OK (для редактирования записи) или Paste
(если вы хотите отредактировать запись).
Выбор команды View Clipboard выводит на экран окно Clipboard, в котором перечисляются все вырезанные элементы.
[*] Clipboard
Module : @#TCDEMO#36 nlines ^
Inspector : nlines 0 (0x0)
Module : @#TCDEMO#38 totalcharacters
Inspector : totalcharacters 0 (0x0)
v
< >
В левом поле этого окна описывается тип записи, за которым
следует двоеточие и вырезанный элемент. Если вырезанный элемент
представляет собой выражение из окна Watch, переменную из окна
Inspector или данные, регистр или флаг из окна CPU то за элемен-
том следует его значение или значения.
Тип | Описание
|
---|
Address | Адрес без соответствующих данных или кода.
|
Control flag | Значение управляющего флага сопроцессора.
|
Coprocessor | Регистр арифметического сопроцессора 80х87.
|
CPU code | Адрес и список байт выполняемых инструкций из
области кода окна CPU.
|
CPU data | Адрес и список байт данных в памяти из области
данных в окне CPU или в окне Dump.
|
CPU flag | Значение флага ЦП из области флагов окна CPU.
|
CPU register | Имя регистра и значение из области регистров
окна CPU или окна Register.
|
CPU stack | Исходная позиция и кадр стека из области стека
окна CPU.
|
Expression | Выражение из окна Watches.
|
File | Позиция в файле (в окне File), которая не является модулем в программе.
|
Inspector | Одно из следующих:
- имя переменной из окна Inspector;
- значение константы из окна Inspector или Watch;
- регистровая переменная окна Inspector.;
- битовое поле окна Inspector.
|
Module | Содержимое модуля, включая позицию в исходном
коде, аналогично переменной из окна Module.
|
Status flag | Значение флага состояния сопроцессора 80х87.
|
String | Текстовая строка, например, отмеченный блок из
окна File.
|
При вставке элементов из буфера Clipboard их тип должен со-
ответствовать типу поля ввода. SpeedMenu окна Clipboard содержит
следующие команды:
Команда | Описание
|
---|
Inspect | Позиционирует курсор в то окно, из которого был
извлечен элемент.
|
Remove | Удаляет подсвеченный элемент или элементы. Тот
же эффект для подсвеченного элемента имеет клавиша Del.
|
Delete all | Удаляет все в буфере Clipboard.
|
Freeze | Приостанавливает динамическое обновление элемента Clipboard.
|
Текстовое окно Get Info
Вы можете выбрать команду File Get Info для анализа использования памяти и определения того, почему получил управление отладчик. Эта и другая информация отображается в текстовом блоке, который удаляется с экрана при нажатии клавиши Enter, пробела или
Esc. В этом окне отображается следующая информация, в зависимости
от того, отлаживаетесь ли вы в DOS, или в Windows.
Если вы отлаживаете программу для DOS, то в блоке System
Information будет выведена следующая информация:
- имя отлаживаемой вами программы;
- описание причины остановки программы;
- объемы памяти, используемой DOS, отладчиком и вашей програм мой;
- версия DOS или Windows, под управлением которой вы работае те;
- текущая дата и время.
TDW дает вам следующую информацию о глобальной памяти:
Mode (режим)
|
Режимами памяти могут быть: Large-frame EMS (EMS-память с
большим размером страничного блока), Small-frame EMS (EMS-память
с малым размером страничного блока), или non-EMS (дополнительная
память).
|
Banked (банкируемая)
|
Объем памяти в килобайтах выше линии банка EMS (которая может быть откачана в расширенную память, если ее использует система).
|
Not Banked (не банкируемая)
|
Объем памяти в килобайтах ниже линии банка EMS (которая не
может быть откачана в расширенную память).
|
Largest (наибольший)
|
Наибольший непрерывный блок памяти в килобайтах.
|
Symbols (идентификаторы)
|
Объем оперативной памяти, используемый для загрузки таблицы
идентификаторов программы.
|
Кроме перечисленной выше информации окно Windows System Information для Windows NT содержит также следующую информацию: Memory Load Factor (процент используемой оперативной памяти), Physical (доступный и общий объем системной памяти), Page file (размер текущего страничного файла и максимальный размер) и Virtual
(общая и доступная виртуальная память).
Команда Attach
Эта команда позволяет подключить TD32 к процессу, работающему под Windows NT. Ее полезно использовать, когда вы знаете, где
в программе возникают ошибки, но вам трудно воспроизвести ситуацию в отладчике. Команда открывает диалоговое окно Attach to and Debug a Running Process.Для подключения к выполняемому процессу сделайте следующее:
- Запустите процесс, который нужно отладить.
- Запустите TD32.
- Выберите команду File Change Dir для перехода в каталог
выполняющегося процесса.
- Выберите команду File Attach для открытия диалогового окна.
- Включите или выключите кнопку с независимой фиксацией Stop
an Attach. При ее включении Turbo Debugger приостанавливает выполнение процесса при подключении к нему.
- В блоке списка Processes выберите процесс(или введите
идентификационный номер процесса в поле ввода Process ID).
Затем щелкните "мышью" на OK.
Если процесс содержит информацию об отладке, и Turbo Debugger может найти исходный код, открывается окно Module. В противном случае открывается окно CPU. После этого вы можете использовать отладчик и отлаживать процесс как обычно.
Команда OS Shell
Эта команда отладчика TD32 работает в операционной системе
Windows NT. По этой команде Turbo Debugger открывает командную
подсказку. Для возврата в отладчик наберите Exit.
Получение справочной информации
Turbo Debugger предлагает несколько способов получения в ходе отладки справочной информации. - С помощью клавиши F1 вы можете получить доступ к развитой контекстной справочной системе. По
данной клавише на экран выводится список тем, из которых вы можете выбрать необходимую.
Индикатор активности в левом правом углу экрана всегда показывает текущее состояние. Например, если курсор находится в окне,
в индикаторе активности выводится READY. Если выводится меню, в
нем указывается MENU, а если вы находитесь в диалоговом окне PROMPT. Если вы, запутаетесь и не можете понять, что происходит в
отладчике, взгляните на индикатор активности.
В строке состояния в нижней части экрана всегда дается краткая информация об используемых клавиатурных командах. При нажатии
клавиши Alt или Ctrl данная строка изменяется. Когда вы находитесь в системе меню, эта строка предлагает вам оперативное описание текущей команды меню.
Оперативная помощь
В отладчик встроен контекстно-зависимый оперативный справочник. Он доступен как при работе в системе меню, так и при выводе
сообщения об ошибке или подсказки. Для вывода справочного экрана
с информацией, относящийся к текущему контексту (окну или меню)
нажмите клавишу F1. При наличие "мыши" вы можете вывести справочный экран, выбрав F1 в строке состояния. Некоторые справочные экраны содержат подсвеченные слова, которые позволяют вам получить
дополнительную информацию по данной теме. Для перемещения к нужным ключевым словам используйте клавиши Tab или Shift+Tab и нажмите клавишу Enter. Для перемещения к первому или последнему слову на экране используйте клавиши Home и End. Доступ к оперативным
справочным средствам можно получить также с помощью команды Help
из строки меню (оперативные клавиши Alt+H).
Если вы хотите вернуться к предыдущему справочному экрану,
нажмите клавиши Alt+F1 или выберите команду Previous из меню
Help. В справочной системе для просмотра последних 20 экранов
можно пользоваться клавишей PgUp (клавиша PgDn работает, когда вы
находитесь в группе связанных экранов). Для доступа к индексному
указателю справочной системы нажмите Shift+F1 (или F1 в справочной системе) или выберите команду Index в меню Help. Для получения информации о самой справочной системе выберите в меню Help
команду Help Help. Для выхода из справочной системы нажмите клавишу Esc.
При работе в отладчике в нижней части экрана выводится краткая справочная строка. В этой строке состояния кратко описаны
клавиши или команды меню для текущего контекста.
Дерево меню
Ниже показана полная структуру спускающихся меню отладчика
TD.
= File Edit View Run Breakpoints Data Options Window Help
Run
Run F9
Go to cursor F4
Trace Into F7
Step Over F8
= (System) Execute to... Alt+F9
Until Return Alt+F8
Repaint Desktop Animate...
Restore Standard Back Trace Alt+F4
Instruction Trace Alt+F7
About...
Arguments...
Program reset Ctrl+F2
Next pending status
Wait for child Yes
File
Open...
Attach
Change Dir...
Get Info... Breakpoints
OS Shell
Toggle F2
At... Alt+F2
Changed memory global...
Expression true global...
Quit Alt-X Handware Breakpoint...
Delete all
View
Data
Breakpoints
Stack Inspect...
Log Evaluate/modify... Ctrl+F4
Watches Add watch... Ctrl+F7
Variables Function return
Module... F3
File...
CPU
Dump
Registers Module...
Numeric Processor Dump
Execution History File...
Hierarchy
Threads
Windows messages
Clipboard
Another >
Options
Window
Language... Source
Macros > Zoom F5
Display options... Next F6
Path for source... Next pane Tab
Set Restart Options... Size/move Ctrl+F5
Save options... Iconsize/restore
Restore options... Close Alt+F3
Undo close Alt+F6
User screen Atl+F5
1 First open window
Create... Alt = (2-9 open windows)
Stop recording Alt - Window pick...
Remove
Delete all
Help
Edit Index Shift+F1
Previous topic Alt+F1
Copy Shift+F3 Help on help
Paste Shift+F4
Copy to Log
Dump pane to log
Назад | Содержание | Вперед