Поделиться через


Отладка проектов DLL

Обновлен: Ноябрь 2007

Этот раздел применим к:

Выпуск

Visual Basic

C#

C++

Web Developer

Express

Тема применяется Тема применяется Тема применяется Тема не применяется

Standard

Тема применяется

Тема применяется

Тема применяется

Тема не применяется

Pro и Team

Тема применяется

Тема применяется

Тема применяется

Тема не применяется

Обозначения:

Тема применяется

Применяется

Тема не применяется

Не применяется

Тема применяется, но команда по умолчанию сокрыта

Команда или команды скрыты по умолчанию.

Следующие шаблоны создают DLL:

  • Библиотека классов (C++, C# и Visual Basic)

  • (C++, C# и Visual Basic): Библиотека элементов управления Windows Forms

    Отладка библиотеки элементов управления Windows аналогична отладке проекта библиотеки классов. В большинстве случаев элемент управления Windows вызывается из другого проекта. При отладке вызывающего проекта можно осуществлять пошаговое выполнение элемента управления Windows, устанавливать точки останова и выполнять другие операции отладки. Дополнительные сведения см. в разделе Элементы управления Windows Forms.

  • (C# и Visual Basic): библиотека элементов управления веб

    Дополнительные сведения см. в разделе Библиотека веб-элементов управления (управляемый код).

  • (C++): Элементы управления ActiveX и Smart Device ActiveX библиотеки MFC

    Элементы управления ActiveX — это элементы управления, которые могут быть загружены через Интернет на компьютер клиента, а затем отображены и активированы на веб–страницах.

    Отладка элементов управления ActiveX аналогична отладке других типов элементов управления, поскольку они не могут быть запущены сами по себе, а должны быть внедрены в веб–страницу HTML. Дополнительные сведения см. в разделе Практическое руководство. Отладка элемента управления ActiveX.

  • (C++): MFC Smart Device DLL

    Дополнительные сведения см. в разделе Методы отладки MFC.

В этом разделе также содержатся сведения по следующим темам:

В этом разделе содержатся следующие подразделы, относящиеся к подготовке отладки библиотек классов:

  • Построение отладочной версии

  • Отладка в смешанном режиме

  • Изменение настроек по умолчанию

  • Способы отладки библиотек DLL

  • Вызывающее приложение

  • Элементы управления на веб–странице

  • Окно "Интерпретация"

Построение отладочной версии

Независимо от того, как выполняется отладка, сначала убедитесь, что собрана отладочная версия DLL, и что эта версия находится в том месте, в котором приложение и ожидает ее найти. Это может казаться очевидным, но если этот этап будет пропущен, приложение может найти другую версию этой DLL и загрузить ее. После этого программа продолжит выполнение, а вы будете удивляться, почему выполнение ни разу не прервалось на точке останова. В процессе отладки можно проверить, какую DLL загрузила программа, открыв в отладчике окно Модули. В окне Модули имеется список всех DLL или исполняемых файлов, загруженных в отлаживаемый процесс. Дополнительные сведения см. в разделе Практическое руководство. Использование окна модулей.

Чтобы отладчик мог присоединиться к коду на языке C++, код должен иметь DebuggableAttribute. Это можно добавить в код автоматически, путем связывания с параметром /ASSEMBLYDEBUG компоновщика.

Отладка в смешанном режиме

Вызывающее DLL приложение может быть написано как в управляемом, так и в машинном коде. Если управляемая DLL вызывается машинным кодом, а надо отлаживать обе части кода, то оба отладчика — управляемый и машинный — должны быть включены. Это можно сделать в диалоговом окне <Проект>Страницы свойств. Выполнение этой процедуры зависит от того, была отладка запущена из проекта DLL или из проекта вызывающего приложения. Дополнительные сведения см. в разделе Практическое руководство. Отладка в смешанном режиме.

Изменение настроек по умолчанию

При создании проекта консольного приложения с использованием шаблона проекта Visual Studio автоматически устанавливает необходимые параметры для отладочной и окончательной конфигурации. При необходимости эти параметры можно изменить. Дополнительные сведения см. в разделах Параметры проекта для конфигурации отладки C++, Параметры проекта для конфигураций отладчика C#, Параметры проекта для конфигурации отладки Visual Basic и Практическое руководство. Настройка конфигураций отладки и выпуска.

Способы отладки библиотек DLL

Каждый из проектов в данном разделе создает библиотеку DLL. Нельзя запустить библиотеку DLL напрямую;она должна быть вызвана приложением, как правило, исполняемым файлом. Дополнительные сведения см. в разделе Создание проектов Visual C++ и управление ими. Вызывающее приложение может удовлетворять любому из следующих критериев:

  • Программа построена в другом проекте в том же решении Visual Studio, которое содержит библиотеку классов.

  • Существующее приложение уже установлено на тестовом или рабочем компьютере.

  • Программа расположена в Интернете и доступна по URL–адресу.

  • Веб–приложение содержит веб–страницу, в которую внедрена библиотека DLL.

Отладка вызывающего приложения

Для отладки библиотеки DLL, запустите отладку вызывающего приложения — как правило, это исполняемый файл или веб–приложение. Есть несколько способов её отладки.

  • Если для вызывающего приложения имеется проект, можно открыть этот проект и запустить выполнение из меню Отладка. Дополнительные сведения см. в разделе Практическое руководство. Запуск выполнения.

  • Если вызывающее приложение — это существующая программа, уже развернутая на рабочем или тестовом компьютере и уже выполняемая, можно присоединиться к нему. Используйте этот метод, если DLL — это элемент управления, размещенный в Internet Explorer или на веб–странице. Дополнительные сведения см. в разделе Практическое руководство. Присоединение к выполняемому процессу.

  • Можно выполнять отладку из проекта DLL. Дополнительные сведения см. в разделе Практическое руководство. Отладка из проекта DLL.

  • Можно выполнять отладку из Visual Studio в окне Интерпретация. В этом случае окно Интерпретация выступает в качестве приложения.

Перед запуском отладки этого вызывающего приложения нужно задать точку останова в библиотеке классов. Дополнительные сведения см. в разделе Точки останова и точки отслеживания. При срабатывании точки останова можно пошагово проходить по коду, наблюдая действия в каждой строке, до тех пор, пока не будет выделена возникшая проблема. Дополнительные сведения см. в разделе Общие сведения о пошаговом выполнении кода.

Элементы управления на веб–странице

Чтобы отлаживать элемент управления веб–страницы, создайте страницу ASP.NET, которая его содержит, если такая страница ещё не существует. Затем следует расставить точки останова в коде веб–страницы и в коде элемента управления. Затем можно вызвать веб–страницу из Visual Studio.

Перед запуском отладки этого вызывающего приложения нужно установить точку останова в DLL. При срабатывании точки останова можно пошагово проходить по коду, наблюдая действия в каждой строке, до тех пор, пока не будет выделена возникшая проблема. Дополнительные сведения см. в разделах Точки останова и точки отслеживания и Общие сведения о пошаговом выполнении кода.

Окно "Интерпретация"

Можно вычислять функции или методы библиотеки DLL без вызывающего приложения. Происходит отладка во время разработки и используется окно Интерпретация. Для такой отладки выполните следующие действия, пока открыт проект DLL:

  1. Откройте окно Интерпретация отладчика.

  2. Чтобы проверить метод с именем Test в классе Class1, создайте экземпляр класса Class1 путем ввода следующего кода C# в окне интерпретации. Этот управляемый код работает под Visual Basic и C++ с соответствующими изменениями синтаксиса:

        Class1 obj = new Class1();
    

    В C# все имена должны быть указаны полностью. Кроме того, любые методы или переменные должны находиться в текущем контексте сеанса отладки и в текущей области кода.

  3. Предположим, что Test принимает один параметр int, вычислим Test с помощью окна Интерпретация:

       ?obj.Test(10)
    

    Результат будет напечатан в окне Интерпретация.

  4. Можно продолжить отладку Test, установив в нем точку останова, а затем снова вычислив эту функцию:

       ?obj.Test(10);
    

    Случится прерывание на точке останова и можно будет пройти Test в пошаговом режиме. После выполнения Test, отладчик вернется в режим разработки.

См. также

Основные понятия

Параметры проекта для конфигураций отладчика C#

Параметры проекта для конфигурации отладки Visual Basic

Безопасность отладчика

Ссылки

Параметры проекта для конфигурации отладки C++

Другие ресурсы

Отладка управляемого кода

Подготовка к отладке: типы проектов Visual C++

Подготовка к отладке: типы проектов C# и Visual Basic