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


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

Следующие шаблоны создают 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.

ms164704.collapse_all(ru-ru,VS.110).gifОтладка вызывающего приложения

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

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

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

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

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

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

ms164704.collapse_all(ru-ru,VS.110).gifЭлементы управления на веб–странице

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

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

ms164704.collapse_all(ru-ru,VS.110).gifОкно "Интерпретация"

Можно вычислять функции или методы библиотеки 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++

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

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

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

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

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

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

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

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