ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 1 Оглавление Введение. ................................................. Требования к аппаратному и программному обеспечению... Замечания по терминологии............................. Содержание данного руководства........................ Как обратиться за помощью к фирме Borland............. Рекомендуемая литература.............................. Глава 1. Начало работы..................................... Дистрибутивные дискеты................................ Файл README........................................... Файл HELPME!.TDW...................................... Файл MANUAL.TDW....................................... Утилиты Турбо отладчика............................... Что делать дальше?.................................... Программистам, изучающим Турбо Паскаль........... Программистам, имеющим опыт работы на Турбо Паскале, но не имеющим опыта работы с отладчиком Программистам, имеющим опыт работы с Турбо отладчиком Глава 2. Основы работы с Турбо отладчиком TDW.............. Что такое отладка?.................................... Обнаружение ошибки............................... Нахождение ошибки................................ Определение причины ошибки....................... Исправление ошибки............................... Что может вам дать Турбо отладчик TDW?................ Что Турбо отладчик TDW не сможетсделать.......... Как работает Турбо отладчик TDW.................. Достоинства Турбо отладчика TDW....................... Меню и диалоговые окна........................... Использование меню.......................... Диалоговые окна............................. Опеределение места расположения....................... Локальные меню................................... Протоколы............................................. Автоматическое дополнение имени.................. Расширение по соответствию............................ Создание макрокоманд.................................. Окна Турбо отладчика TDW.............................. Окна меню View................................... Окно Watches................................ Окно Breakpoints............................ Окно Stack.................................. Окно Log.................................... Окно Variables.............................. Окно File................................... Окно CPU.................................... Окно Dump................................... Окно Registers.............................. Окно Numeric Processor...................... Окно Execution History...................... Окно Hierarchy.............................. Окно сообщений Windows (Windows Messages)... Окна-дубликаты.............................. Экран пользователя............................... Окна проверки.................................... Активное окно.................................... Что выводится в окне?............................ Работа с окнами.................................. Переход от одного окна к другому............ Перемещение окон и изменение их размера..... Закрытие и восстановление окон.............. Сохранение используемой вами схемы окон..... Получение справочной информации.................. Оперативная помощь.......................... Строка состояния............................ В окне................................. В меню или диалоговом окне............. Глава 3. Небольшой пример.................................. Примеры программ...................................... Использование Турбо отладчика TDW..................... Меню............................................. Строка состояния................................. Окна............................................. Использование примера программы TDDEMO................ Задание точек останова........................... Использование окна Watches....................... Анализ простых объектов данных программы на языке Паскаль Анализ сложных объектов данных программы на языке Паскаль Изменение значений данныx в программе на языке Паскаль Глава 4. Начало работы с Турбо отладчиком TDW.............. Подготовка программ для отладки....................... Запуск Турбо отладчика TDW............................ Ввод параметров командной строки................. Непосредственный ввод параметров командной строки Задание параметров командной строки в TPW.INI О чем необходимо помнить.................... Выполнение TDW........................................ Параметры командной строки............................ Загрузка файла конфигурации (параметр -c)........ Параметры, управляющие выводом на экран (параметры -d) Параметр -do................................ Параметр -ds................................ Параметры получения справочной информации (параметры -h и -?) Параметр режима Ассемблера (параметр) -l......... Поддержка "мыши" (параметр -p)................... Параметры обработки исходного кода (параметры -s) Параметр -sc................................ Параметр -sd................................ Параметр каталога запуска (-t)................... Файлы конфигурации.................................... Меню Options.......................................... Команда Language................................. Меню Macros...................................... Команда Create.............................. Команда Stop Recording...................... Команда Remove.............................. Команда Delete All.......................... Команда Display Options.......................... Переключатель Diplay Swapping............... Переключатель Integer Format................ Переключатель Screen Lines.................. Параметр Tab Size........................... Команда Path for Source........................... Команда Save Options........................ Команда Restore Options..................... Возврат в Windows..................................... Глава 5. Управление выполнением программы.................. Анализ текущего состояния программы................... Окно Variables................................... Локальное меню области глобальных переменных Команда Inspect........................ Команда Change......................... Команда Watch.......................... Локальное меню области статических переменных Команда Inspect........................ Команда Change......................... Команда Watch.......................... Команда Show........................... Окно Stack....................................... Локальное меню окна Stack................... Команда Inspect........................ Команда Locals......................... Команда локального меню Origin................... Анализ состояния выполнения: команда Get Info.... Информация о глобальной памяти.............. Сообщения, выводимые в строке состояния..... Меню Run.............................................. Команда Run...................................... Команда Go to Cursor............................. Команда Trace Into............................... Команда Step Over................................ Команда Execute To............................... Команда Until Return............................. Команда Animate.................................. Команда Back Trace............................... Команда Instruction Trace........................ Команда Arguments................................ Команда Program Reset............................ Окно Execution History................................ Область инструкций............................... Локальное меню области инструкций........... Команда Inspect........................ Команда Reverse Execute................ Команда Full History................... Прерывание выполнения программы....................... Завершение работы вашей программы..................... Возобновление сеанса отладки.......................... Загрузка новой программы для отладки.................. Изменение аргументов программы........................ Глава 6. Анализ и модификация данных....................... Меню Data............................................. Команда Inspect.................................. Команда Evaluate/Modify.......................... Команда Add Watch................................ Команда Function Returns......................... Ссылка на элементы данных в исходных файлах........... Окно Watches.......................................... Локальное меню окна Watches...................... Команда Watch............................... Команда Edit................................ Команда Remove.............................. Команда Delete All.......................... Команда Inspect............................. Команда Change.............................. Окна Inspector........................................ Окна проверки данных для Паскаля................. Скалярные величины.......................... Указатели................................... Массивы..................................... Записи...................................... Функции и процедуры......................... Окна проверки данных для Ассемблера.............. Скалярные величины.......................... Указатели................................... Массивы..................................... Структуры и объединения..................... Локальное меню окна Inspector.................... Команда Range................................ Команда Change............................... Команда Inspect.............................. Команда Descend.............................. Команда New Expression....................... Команда Type Cast............................ Глава 7. Точки останова.................................... Меню Breakpoints...................................... Команда Toggle................................... Команда At....................................... Команда Changed Memory Global.................... Команда Expression True Global................... Команда Delete All............................... Область действия выражений, заданных для точек останова Окно Breakpoints...................................... Локальное меню окна Breakpoints.................. Команда Set Option.......................... Команда Add................................. Команда Remove.............................. Команда Delete All.......................... Команда Inspect............................. Окно Log.............................................. Локальное меню окна Log.......................... Команда Open Log File...................... Команда Close Log File..................... Команда Logging............................ Команда Add Comment........................ Команда Erase Log.......................... Команда Display Windows Info............... Простые точки останова................................ Условные точки останова и счетчики проходов........... Глобальные точки останова............................. Остановка при изменении объектов данных............... Регистрация значений переменных....................... Выполнение выражений.................................. Глава 8. Просмотр и модификация файлов..................... Просмотр исходных файлов программы.................... Окно Module...................................... Локальное меню окна Module....................... Команда Inspect............................ Команда Watch.............................. Команда Module............................. Команда File............................... Команда Previous........................... Команда Line............................... Команда Search............................. Команда Next............................... Команда Origin............................. Команда Goto............................... Просмотр других файлов на диске....................... Окно File............................................. Локальное меню окна File.............................. Команда Goto..................................... Команда Search................................... Команда Next..................................... Команда Display As............................... Команда File..................................... Глава 9. Выражения......................................... Выбор языка для вычисления выражения.................. Адреса кода, адреса данных и номера строк............. Доступ к идентификаторам вне текущей области действия. Синтаксис переопределения области действия....... Неявная область действия при вычислении выражений Списки байт........................................... Выражения языка Паскаль............................... Идентификаторы Паскаля........................... Константы Паскаля и формат чисел................. Строки Паскаля................................... Операции Паскаля и старшинство операций.......... Соглашения Паскаля по вызовам процедур и функций. Выражения Ассемблера.................................. Идентификаторы Ассемблера........................ Константы Ассемблера............................. Операции Ассемблера.............................. Управление форматом................................... Глава 10. Объектно-ориентированная отладка для Паскаля..... Окно Hierarchy........................................ Область списка типов объектов.................... Локальное меню области области списка типов. Команда Inspect......................... Команда Tree............................ Область дерева иерархии............................... Локальные меню области дерева иерархии........... Локальные меню окна Object Type Inspector........ Область полей данных объекта (верхняя)...... Inspect (Проверка)..................... Hierarchy (Иерархия)................... Show Inherited (Вывод наследования).... Область объектных методов (нижняя).......... Inspect (Проверка)..................... Hierarchy (Иерархия)................... Show Inherit (Вывод наследования)...... Окно Object Instance Inspector........................ Локальное меню окна Object Instance Inspector.... Range (Диапазон)............................ Change (Изменение).......................... Methods (Методы)............................ Show Inherited (Вывод наследования)......... ... Inspect (Проверка).......................... Descend (Спуск)............................. New Expression (Новое выражение)............ Type Cast (Приведение типа)................. Hierarchy (Иерархия)........................ Средняя и нижняя области.............................. Глава 11. Использование средств отладки Windows............ Средства Windows...................................... Регистрация сообщений Windows.................... Выбор окна.................................. Добавление выбранного окна............. Отмена выбора окна..................... Задание класса сообщений и действия......... ... Добавление класса сообщений............ Удаление класса сообщений.............. Замечания по сообщениям Windows.................. Просмотр сообщений.................................... Получение содержимого памяти и списков модулей... Листинг содержимого глобальной динамически распределяемой области памяти Листинг содержимого локальной динамически распределяемой области Получение списка модулей......................... Отладка динамически компонуемых библиотек (DLL)....... ..... Использование диалогового окна Load Modules or DLLs Переход к другому исходному модулю.......... Работа с DLL и программами.................. Добавление DLL в список DLLs & Programs.......... Установка параметров отладки для DLL............. Управление загрузкой TDW таблиц имен идентификаторов DLL Отладка начального кода загрузки DLL............. Преобразование описателей памяти в адреса............. Глава 12. Отладка на уровне Ассемблера..................... Когда недостаточно отладки на уровне исходного кода... Окно CPU.............................................. Область кода.......................................... Дизассемблер..................................... Локальное меню области кода...................... Команда Goto................................ Команда Origin.............................. Команда Follow.............................. Команда Caller.............................. Команда Previous............................ Команда Search.............................. Команда Mixed............................... Команда New CS:IP........................... Команда Assemble............................ Команда I/O................................. Команда In Byte........................ Команда Out Byte....................... Команда Read Word...................... Команда Write Word..................... Область регистров и флагов............................ Локальное меню области регистров................. Команда Increment........................... Команда Decrement........................... Команда Zero................................ Команда Change.............................. Команда Registers 32-bit.................... Локальное меню области флагов.................... Команда Toggle.............................. Область данных........................................ Локальное меню области данных.................... Команда Goto................................. Команда Search............................... Команда Next................................. Команда Change............................... Команда Follow............................... Команда Near Code....................... Команда Far Code........................ Команда Offset to Data.................. Команда Segment:Offset to Data.......... Команда Base Segment:0 to Data.......... Команда Previous локального меню области данных Команда Display As........................... Команда Byte............................ Команда Word............................ Команда Long............................ Команда Comp............................ Команда Float........................... Команда Real............................ Команда Double.......................... Команда Extended........................ Команда Block................................ Команда Clear........................... Команда Move............................ Команда Set............................. Команда Read............................ Команда Write........................... Область стека......................................... Локальное меню области стека..................... ....................... Команда Goto................................ Команда Origin.............................. Команда Follow.............................. Команда Previous............................ Команда Change.............................. Ассемблер............................................. Переопределения размера адреса операнда.......... Память и непосредственные операнды.......... Переопределение размера данных в операндах........ Строковые инструкции.............................. Окно Dump............................................. Окно Registers........................................ Глава 13. Сопроцессор 80х87 и эмулятор..................... Сопроцессор 80х87 или эмулятор?....................... Окно Numeric Processor................................ Область регистров................................ 80-разрядные регистры с плавающей точкой.... Локальное меню области регистров................. Команда Zero................................ Команда Empty............................... Команда Change.............................. Область управления.................................... Биты управления.................................. Локальное меню области управления................ Команда Toggle.............................. Область состояния................................ Биты состояния................................... Локальное меню области состояния................. Команда Toggle.............................. Глава 14. Команды Турбо отладчика TDW...................... Оперативные клавиши................................... Команды, доступные из основного меню.................. Меню Ё (системное меню).......................... Меню File (Файл)................................. Меню View (Обзор)................................ Меню Run (Выполнение)............................ Меню Breakpoints (Точки останова)................ Меню Data (Данные)............................... Меню Options (Параметры)......................... Меню Window (Окно)............................... Меню Help (Справка).............................. Команды локальных меню................................ Локальное меню окна Breakpoints (Точки останова). Меню окна CPU (ЦП)............................... Локальное меню области кода................. Локальное меню области данных............... Локальное меню области флагов............... Локальное меню области регистров............ Локальное меню области стека................ Локальное меню окна Dump (Дамп).................. Меню окна Execution History...................... Область инструкций.......................... Локальное меню окна File (Файл).................. Локальное меню окна Log (Регистрация)............ Локальное меню окна Module (Модуль).............. Окно Windows Messages............................ Локальное меню области Window Selection..... Локальное меню области Message Class........ Локальное меню области Messages............. Окно Numeric Proseccor (Сопроцессор)............. Локальное меню области регистров............ Локальное меню области состояния............ Локальное меню области управления........... Локальные меню окна Hierarchy (Иерархия)......... Локальное меню области списка типов объектов Локальное меню области дерева иерархии...... Область дерева порождающих объектов......... Меню окна Registers (Регистры)................... Локальное меню окна Stack (Стек)................. Локальное меню окна Variables (Переменные)....... Область глобальных идентификаторов.......... Область локальных идентификаторов........... Меню окна Watches (Просмотр)..................... Локальное меню окна Inspector (Проверка)......... Локальное меню окна проверки типа объекта........ Локальное меню окна проверки вхождения объекта... Локальное меню окна проверки экземпляра объекта.. Области текста........................................ Области списков....................................... Команды в окнах подсказки............................. Команды перемещения окна.............................. Трафаретные символы, используемые при поиске.......... Полное дерево меню.................................... Глава 15. Отладка стандартной прикладной программы на Паскале Когда что-то не работает.............................. Стиль отладки......................................... Полное выполнение................................ Последовательное тестирование.................... Типы ошибок........................................... Общие ошибки..................................... Скрытые эффекты............................. Предположения об инициализации данных....... Не забывайте об очистке..................... "Забор и столбы"............................ Ошибки, специфические для Паскаля..................... Неинициализированные переменные.................. Неправильная работа с указателями................ Неправильное использование области действия...... Неправильное использование точки с запятой....... Функция возвращает неопределенное значение....... Уменьшение значения переменных размером в байт или слово Игнорирование границ и особые случаи............. Ошибки диапазона................................. Ошибки, специфические для Ассемблера.................. Программист забывает о возврате в DOS............ Программист забывает об инструкции RET........... Генерация неверного типа возврата................ Неправильный порядок операндов................... Программист забывает о стеке или резервирует маленький стек Вызов подпрограммы, которая портит содержимое нужных регистров Ошибки при использовании условных переходов...... Ошибки в переопределении REP в строковых инструкциях Нулевое содержимое CX и работа с целым сегментом. Неправильная установка флага направления......... Неверное понимание повторения команд сравнения строк Ошибки при назначении сегмента строк по умолчанию Неправильное преобразование из байта в слово..... Использование нескольких префиксов............... Необязательные операнды в командах обработки строк Уничтожение содержимого регистра при умножении.... Ошибки, связанные с изменением содержимого регистров Изменение состояния флага переноса................ Программист долго не использует флаги............. Смешение операндов в памяти и промежуточных операндов Сохранение содержимого регистров при обработке прерываний Игнорирование групп в таблицах операндов и данных. Проверка точности...................................... Проверка граничных условий и случаи ограничения... Ввод ошибочных данных............................. Отсутствие входных данных......................... Отладка, как часть процесса создания программы......... Пример сеанса отладки.................................. Поиск ошибок...................................... Выбор стратегии поиска ошибок..................... Запуск Турбо отладчика TDW........................ Перемещение по программе.......................... Диалоговое окно Evaluate/Modify................... Проверка.......................................... Выражения просмотра............................... Завершение........................................ Глава 16. Отладка объектно-ориентированной прикладной программы, использующей ObjectWindows О программе............................................ Определение типа ScribbleWindow................... Init......................................... WMLButtonDown................................ WMMouseMove.................................. WMLButtonUp.................................. WMRButtonDown................................ Добавление цвета с помощью CSribbleWindow......... Переменная thePen............................ Конструктор Init............................. Деструктор Done.............................. Подпрограммы цвета пера...................... Метод WMLButtonDown.......................... Создание прикладной программы..................... Отладка программы...................................... Выявление первой ошибки........................... Исключение альтернатив....................... Отладка LineTo............................... Проверка исправлений......................... Поиск ошибки назначения цвета пера................. Установка точки останова для окна............ Прерывание программы с помощью клавиш Ctrl-Alt-SysRq Задание точки останова.................. Если не работают клавиши Ctrl-Alt-SysRq. Проверка wParam.............................. Проверка исправления......................... Поиск ошибки рисования за пределом экрана......... Регистрация сообщений Windows................ Обнаружение ошибки........................... Исправление ошибки........................... Проверка исправлений......................... Поиск ошибки стирания экрана...................... Анализ причины ошибки........................ Исправление ошибки........................... Проверка исправления......................... Глава 17. Отладка стандартной прикладной программы Windows.. Примеры программ....................................... Компиляция и компоновка демонстрационных программ...... Запуск TDWDEMO......................................... Отладка программы TDWDEMOA............................. Принятие решения.................................. Регистрация сообщений............................. Анализ протокола сообщений........................ Поиск ошибки...................................... Выполнение программы по шагам................ Анализ подпрограммы DoPaint.................. Исправление ошибки........................... Прерывание программы TDWDEMOA..................... Отладка программы TDWDEMOB............................. Переключение из программы......................... Проверка программы................................ Принятие решения.................................. Сравнение списков глобальной памяти............... Поиск ошибки: функциональный подход............... Выбор элементов меню......................... Отображение фигуры........................... Нажатие левой кнопки "мыши"............. Перемещение "мыши"...................... Отображение фигуры (и поиск ошибки)..... Освобождение левой кнопки............... Рисование на экране..................... Итоги.................................................. Приложение A. Параметры командной строки.................... Приложение B. Ключевые слова встроенного Ассемблера......... Приложение C. Настройка Турбо отладчика TDW................. Запуск программы TDWINST............................... Установка цветов экрана................................ Настройка цветов экрана.......................... Окна........................................ Диалоговые окна............................. Меню........................................ Экран....................................... Цвета, используемые по умолчанию.................. Установка параметров экрана Турбо отладчика TDW........ Переключатели Display Swapping.................... Переключатель Integer Format...................... Переключатель Beginning Display................... Assembler (Ассемблер)............................. Source (Исходный модуль).......................... Переключатель Screen Lines........................ Tab Size.......................................... Maximum Tiled Watch............................... Переключатель Fast Screen Update.................. Переключатель Permit 43/50-Line Mode.............. Переключатель User Screen Updating................ Other Display..................................... Swap (Обмен)...................................... Log List Length................................... Floating Precision................................ Range Inspect..................................... Установка параметров Турбо отладчика TDW............... Параметр Directories.............................. Параметр Input and Prompting...................... History List Length (Длина списка регистрации) Beep on Error (Звуковой сигнал при ошибке)... Control-key Shortcuts (Сокраращения для клавиши Ctrl) Mouse Enabled (Разрешение работы с "мышью").. Full trace history (Полный протокол трассировки) Диалоговое окно Source Debugging....................... Параметр Language................................. Параметр Ignore Symbol Case....................... Задание режимов вывода................................. Параметры командной строки и их эквиваленты в программе TDWINST В процессе работы...................................... Сохранение изменений.............................. Сохранение файла конфигурации................ Модификация файла TDW.EXE.................... Выход из программы TDWINST......................... Приложение D. Подсказки и сообщения об ошибках.............. Подсказки в диалоговых окнах........................... Ошибки................................................. Фатальные ошибки.................................. Сообщения об ошибках.............................. Приложение E. Использование Турбо отладчика TDW с различными языками Замечания по встроенному Ассемблеру.................... Просмотр данных в непосредственном шестнадцариричном виде Отладка на уровне исходного кода.................. Проверка и изменение регистров.................... Замечания по Турбо Паскалю............................. Прохождение кода инициализации.................... Выполнение процедур Exit.......................... Константы......................................... Временные значение строкового и множественного типа в стеке Автоматическое приведение типа.................... Замечания по использованию для Паскаля окна CPU... |