Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
17 матлаб.docx
Скачиваний:
5
Добавлен:
01.03.2025
Размер:
93.6 Кб
Скачать

Настройка отладки

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

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

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

  • Executable for debug session. Это тот самый файл, который будет запускаться под управлением отладчика. Если вы разрабатываете приложение, здесь прописывается полный путь к его exe-файлу. При разработке DLL ответ не столь однозначен – здесь может стоять и Visual Basic или ActiveX Control Test Container (для ActiveX-элементов), и explorer.exe (при разработке расширения оболочки), и даже сама среда Visual C++ (если вы пишете add-in для неё). Из меню, раскрывающегося по щелчку на кнопке с чёрной стрелкой, вы можете выбрать команду Browse (выбрать нужный exe-файл), ActiveX Control Test Container (выбрать контейнер для тестирования ActiveX-элементов, поставляемый вместе с Visual C++) и Default Browser (выбрать заданный по умолчанию веб-броузер).

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

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

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

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

Рисунок 2. Настройка отладки, категория Additional DLLs

Зачем это может понадобиться, спросите вы. Дело в том, что сразу после запуска отлаживаемого процесса отладчик пытается установить в нём заданные вами точки останова. Для этого ему требуются отладочные символы модулей, в которых эти точки устанавливаются Символы exe-файла приложения и подключаемых к нему при запуске DLL отладчик загружает сразу. Но символы DLL, которые будут загружены в программу позже (это касается явно загружаемых DLL, внутрипроцессных COM-серверов и т.п.), по умолчанию не загружаются. Это приведёт к сообщению “One or more breakpoints cannot be set and have been disabled”, когда отладчик попытается установить точки останова в этих DLL, а сами точки будут отключены. Для решения этой проблемы и используется категория Additional DLLs. К этому вопросу мы ещё вернёмся, когда будем обсуждать отладку DLL.

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

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

Подключение к уже запущенному процессу

Команда Attach to Process из меню Debug открывает одноименный диалог, позволяющий подключить отладчик к любому уже запущенному процессу (рис. 3). Например, если написанная вами программа вдруг "зависла", можно тут же подключиться к ней и выяснить причину ошибки. Вы можете даже подключиться к оболочке Windows (explorer.exe), чтобы изучить её работу с помощью отладчика. Правда, в этом случае вам придётся работать с ассемблером, так как Микрософт не поставляет исходные тексты своей оболочки.

Рисунок 3. Окно Attach To Process

Выбрать нужный процесс можно по заголовку его главного окна (колонка Title) или имени его exe-файла (колонка Process), а если этого недостаточно – по уникальному идентификатору процесса (колонка Process Id). Можно отсортировать процессы по любому из этих признаков, щёлкнув по заголовку соответствующего столбца. Обратите внимание на галочку Show System Processes. Если её установить, в список процессов будут включены системные процессы, такие, как сервисы Windows NT.

Just-in-time debugging

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

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

Если нажать кнопку Cancel, операционная система запустит отладчик, подключит его к сбойному процессу и предоставит вам возможность найти ошибку в момент её возникновения. Кроме этого, в Windows NT/2000 существует ещё один способ подключить отладчик к существующему процессу. Откройте Task Manager, найдите нужный процесс на закладке Processes, подсветите его в списке и выберите из контекстного меню команду Debug.

Just-in-time debugging работает следующим образом. Путь к отладчику запоминается операционной системой в параметре Debugger. В Windows NT/2000 этот параметр хранится в реестре под ключом HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug, а в Windows 9x – в файле win.ini в секции [AeDebug]. Одновременно на машине может быть только один отладчик, зарегистрированный для Just-in-time debugging. Чтобы прописать туда отладчик Visual C++, откройте окно Tools->Options, перейдите на закладку Debug и установите галочку Just-in-Time Debugging.

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