Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR1_Informatika.doc
Скачиваний:
9
Добавлен:
27.03.2015
Размер:
465.41 Кб
Скачать
      1. Настройка отладки

Для настройки отладки используется закладка Debug в окне Project->Settings. На этой закладке можно выбрать две категории: General и Additional DLLs. Первая категория используется для задания общих параметров отладки (рис. 11).

Рис. 11. Настройка отладки, категория General

Здесь вы можете задать следующие параметры.

  • Executable for debug session. Это тот самый файл, который будет запускаться под управлением отладчика. Если вы разрабатываете приложение, здесь прописывается полный путь к его exe-файлу. Из меню, раскрывающегося по щелчку на кнопке с чёрной стрелкой, вы можете выбрать командуBrowse(выбрать нужный exe-файл).

  • Working directory. Рабочий каталог для отлаживаемого приложения. По умолчанию используется каталог, в котором находится его exe-файл.

  • Program arguments. Аргументы, которые нужно передать приложению при запуске.

  • Remote executable path and file name. Путь к отлаживаемому приложению на удалённой машине, если отладка удаленная.

В категории Additional DLLs задаются модули, для которых необходимо принудительно загрузить отладочные символы. Категория Additional DLLs используется при отладке DLL программ.

      1. Запуск и прекращение отладки

Чтобы вы могли контролировать выполнение программы и наблюдать её состояние, нужно запустить её под управлением отладчика Visual C++. Для этой цели используются команды из меню Build->Start Debug. Первые три из них (Go, Step Into и Run to Cursor) запускают тот процесс, который указан в настройках отладки (рис.12).

Рис.12. Меню отладки

Команда Attach to Processиз менюDebugоткрывает одноименный диалог, позволяющий подключить отладчик к любому уже запущенному процессу. Например, если написанная вами программа вдруг "зависла", можно тут же подключиться к ней и выяснить причину ошибки.

В Visual C++ начиная с версии 4.2 появилась возможность отладки "на лету" (Just-in-time debugging). Благодаря этой возможности отладчик можно подключить к программе именно в тот момент, когда она "упала" (например, из-за ошибки доступа). Вот как выглядит окно Application Error в Windows 2000 (рис. 13).

Рисунок 13. Окно Application Error

Если нажать кнопку Cancel, операционная система запустит отладчик, подключит его к сбойному процессу и предоставит вам возможность найти ошибку в момент её возникновения.

      1. Завершение отладки

Сеанс отладки автоматически заканчивается, когда завершается отлаживаемая программа. Кроме этого, отладку можно прекратить в любой момент, вызвав команду Stop Debugging из меню Debug или нажав Shift+F5.

    1. Точки останова

Точки останова (breakpoints) играют важную роль в отладке приложений. На самом деле, точка останова – это некоторое условие (например, достижение определённой команды в программе), при выполнении которого возбуждается исключение EXCEPTION_BREAKPOINT (0x80000003). Как мы уже знаем, исключение приводит к тому, что отлаживаемый процесс приостанавливается, а отладчик получает управление. В частности, он может считать текущие значения регистров процессора и ячеек памяти и выдать их на экран для анализа. После этого он может возобновить выполнение отлаживаемого процесса по команде программиста.

С помощью точек останова в отладчике Visual C++ реализовано множество полезных возможностей, например, пошаговая отладка (режим, в котором пользователь может выполнять по одной инструкции отлаживаемой программы за раз).

Visual C++ поддерживает множество разновидностей точек останова. Условием для прерывания программы может быть достижение некоторой команды, изменение глобальной переменной, приход заданного сообщения Windows и т. п. Приостановленную программу можно выполнять в пошаговом режиме, анализировать текущие значения переменных и даже вносить в программу изменения прямо "на лету", не прерывая сеанса отладки.

Самый простой способ приостановить программу – вызвать команду Break из меню Debug (ей соответствует команда Break Execution на панели инструментов). Иногда это бывает удобно. Если, к примеру, ваша программа вошла в бесконечный цикл, можно прервать её и посмотреть, почему это произошло. Однако в большинстве случаев такой способ недостаточно точен, и вместо него используются точки останова.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]