Отладка из проекта DLL в Visual Studio (C#, C++, Visual Basic, F#)
Область применения:Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Одним из способов отладки проекта библиотеки DLL является указание вызывающего приложения в свойствах проекта библиотеки DLL. Затем можно запускать отладку из самого проекта DLL. Чтобы этот метод работал, приложение должно вызвать одну и ту же библиотеку DLL в том расположении, которое вы настроили. Если приложение находит и загружает другую версию библиотеки DLL, эта версия не будет содержать точки останова. Другие методы отладки библиотек DLL см. в разделе Отладка проектов DLL.
Если управляемое приложение вызывает собственную библиотеку DLL или ваше собственное приложение вызывает управляемую библиотеку DLL, можно выполнить отладку библиотеки DLL и вызывающего приложения. Дополнительные сведения см. в разделе Практическое руководство. Отладка в смешанном режиме.
Собственные и управляемые DLL-проекты имеют разные параметры для указания вызывающих приложений.
Указание вызывающего приложения в собственном проекте DLL

- Выберите проект C++ DLL в обозревателе решений. Щелкните значок Свойства, нажмите сочетание клавиш ALT+ВВОД или щелкните проект правой кнопкой мыши и выберите элемент Свойства.
- В диалоговом окне Страницы свойств убедитесь, что в поле Настройка в верхней части окна задано значение Отладка.
- Выберите Свойства конфигурации>Отладка.
- В списке Запускаемый отладчик выберите Локальный отладчик Windows или Удаленный отладчик Windows.
- В поле Команда или Удаленная команда добавьте полный путь и имя файла вызывающего приложения, например EXE-файл.
- Добавьте необходимые аргументы программы в поле Аргументы команды.
- Нажмите ОК.
Указание вызывающего приложения в проекте C# или DLL (.NET Core, .NET 5+)

- Выберите проект C# или Visual Basic DLL в обозревателе решений. Щелкните значок Свойства, нажмите сочетание клавиш ALT+ВВОД или щелкните проект правой кнопкой мыши и выберите элемент Свойства.
- Откройте вкладку «Отладка» и выберите пункт Открыть пользовательский интерфейс профилей запуска отладки.
- В диалоговом окне «Профили запуска» щелкните значок Создать новый профиль и выберите Исполняемый файл.
- В новом профиле в разделе Исполняемый файл перейдите к расположению исполняемого файла (.exe) и выберите его.
- В диалоговом окне «Профили запуска» найдите и запишите имя профиля по умолчанию, а затем выберите его и удалите.
- Присвойте новому профилю имя профиля по умолчанию. Чтобы получить такой же результат, можно также вручную изменить файл launchSettings.json. Необходимо, чтобы первый профиль в файле launchSettings.json соответствовал имени библиотеки классов и он был первым указан в файле.
Указание вызывающего приложения в управляемом проекте DLL
- Выберите проект C# или Visual Basic DLL в обозревателе решений. Щелкните значок Свойства, нажмите сочетание клавиш ALT+ВВОД или щелкните проект правой кнопкой мыши и выберите элемент Свойства.
- Убедитесь, что в поле Настройка в верхней части окна задано значение Отладка.
- В разделе Запустить действие
- Для библиотек DLL .NET Framework выберите Запустить внешнюю программу и добавьте полный путь и имя вызывающего приложения.
- Или выберите Запустить браузер с URL-адресом и введите URL-адрес локального приложения ASP.NET.
- У библиотек DLL .NET Core для Visual Basic страница свойств Отладка отличается. Выберите Исполняемый файл из раскрывающегося списка Запуск, а затем добавьте полный путь и имя вызывающего приложения в поле Исполняемый файл.
- Для библиотек DLL .NET Core страница свойств Отладка отличается. Выберите Исполняемый файл из раскрывающегося списка Запуск, а затем добавьте полный путь и имя вызывающего приложения в поле Исполняемый файл.

Отладка из проекта DLL
- Задайте точки останова в проекте DLL.
- Щелкните проект DLL правой кнопкой мыши и выберите Назначить запускаемым проектом.
- Убедитесь, что в поле Конфигурация решений установлено значение Отладка. Нажмите клавишу F5, щелкните зеленую стрелку Запуск или выберите Отладка>Начать отладку.
- Если отладка не достигает точек останова, убедитесь, что выходные данные библиотеки DLL (по умолчанию — папка \Debug) — это расположение, которое вызывает вызывающее приложение.
- Если вы хотите прервать выполнение кода в управляемом вызывающем приложении из собственной библиотеки DLL или наоборот, включите отладку в смешанном режиме.
- В некоторых сценариях может потребоваться сообщить отладчику, где найти исходный код. Дополнительные сведения см. в разделе Использование страниц «Символы не загружены» или «Нет исходного кода».
См. также
- Отладка проектов DLL
- Параметры проекта для конфигураций отладки C#
- Параметры проекта для конфигурации отладки Visual Basic
- Параметры проекта для конфигурации отладки C++
Загрузка библиотек DLL расширения отладчика
Существует несколько методов загрузки библиотек DLL расширения отладчика, а также управления библиотекой DLL расширения отладчика по умолчанию и путем расширения отладчика по умолчанию:
- (Перед запуском отладчика) Используйте переменную среды _NT_DEBUGGER_EXTENSION_PATH, чтобы задать путь по умолчанию для библиотек DLL расширений. Это может быть несколько путей к каталогам, разделенных точкой с запятой.
- Используйте команду .load (Load Extension DLL), чтобы загрузить новую библиотеку DLL.
- Используйте команду .unload (Unload Extension DLL) для выгрузки библиотеки DLL.
- Используйте команду .unloadall (Выгрузить все библиотеки DLL расширений), чтобы выгрузить все расширения отладчика.
- (Перед запуском отладчика; Только CDB) Используйте файл tools.ini , чтобы задать библиотеку DLL расширения по умолчанию.
- (Перед запуском отладчика) Используйте параметр командной строки-a, чтобы задать библиотеку DLL расширения по умолчанию.
- Используйте команду .extpath (Задать путь к расширению), чтобы задать путь поиска расширения DLL.
- Чтобы задать библиотеку DLL расширения по умолчанию, используйте команду .setdll (Set Default Extension DLL).
- Используйте команду .chain (Перечисление расширений отладчика), чтобы отобразить все загруженные модули расширения отладчика в порядке поиска по умолчанию.
Вы также можете загрузить библиотеку DLL расширения, просто используя полный !модуль.синтаксис расширения при первом выполнении команды из этого модуля. Дополнительные сведения см. в разделе Использование команд расширения отладчика .
Библиотеки DLL расширения, которые вы используете, должны соответствовать операционной системе целевого компьютера. Библиотеки DLL расширения, поставляемые с пакетом средств отладки для Windows, размещаются в разных подкаталогах каталога установки:
- Каталог winxp содержит расширения, которые можно использовать с Windows XP и более поздними версиями Windows.
- Каталог winext содержит расширения, которые можно использовать с любой версией Windows. Модуль dbghelp.dll, расположенный в базовом каталоге средств отладки для Windows, также содержит расширения этого типа.
Если вы пишете собственные расширения отладчика, их можно разместить в любом каталоге. Однако рекомендуется поместить их в новый каталог и добавить этот каталог в путь расширения отладчика.
Может быть загружено до 32 библиотек DLL расширений.
Отладка приложения, которое не входит в решение Visual Studio (C++, C#, Visual Basic, F#)
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Иногда требуется выполнить отладку приложения (EXE-файл), которое не является частью решения Visual Studio. Это может быть проект с открытой папкой, вы или кто-то другой мог создать приложение вне Visual Studio или вы получили приложение в другом месте.
- Для проекта с открытой папкой в Visual Studio (без файла проекта или решения) см. статью Выполнение и отладка кода или (для C++) Настройка параметров отладки с помощью launch.vs.json.
- Для приложения, которое не существует в Visual Studio, отладка обычно выполняется путем запуска за пределами Visual Studio, а затем присоединения с помощью функции Присоединение к процессу в отладчике Visual Studio. Дополнительные сведения см. в статье Присоединение к выполняемым процессам. Присоединение к приложению требует выполнения некоторых операций вручную, и это занимает несколько секунд. Из-за этой задержки присоединение не помогает отладить проблемы при запуске или приложение, которое не ждет ввода данных пользователем и быстро завершается. В таких ситуациях можно создать проект Visual Studio EXE для приложения или импортировать его в существующее решение C#, Visual Basic или C++. Не все языки программирования поддерживают исполняемые проекты.
Функции отладки для приложения, не созданного в Visual Studio, ограниченны, независимо от того, присоединяетесь ли вы к нему или добавляете в решение Visual Studio.
Если у вас есть исходный код, лучше всего импортировать его в проект Visual Studio. Затем запустите отладочную сборку приложения.
Если у вас нет исходного кода и у приложения нет отладочной информации в совместимом формате, вам доступно немного функций отладки.
Создание EXE-проекта для существующего приложения
- В Visual Studio последовательно выберите Файл>Открыть>Проект.
- В диалоговом окне Открыть проект выберите Все файлы проекта, если они еще не выбраны, в раскрывающемся списке рядом с полем Имя файла.
- Перейдите к EXE-файлу, выберите его и щелкните Открыть. Файл появится в новом временном решении Visual Studio.
- Запустите отладку приложения, выбрав команду выполнения, например Начать отладку в меню Отладка.
Чтобы импортировать приложение в решение Visual Studio
- Когда решение C++, C# или Visual Basic будет открыто в Visual Studio, выберите Файл>Добавить>Существующий проект.
- В диалоговом окне Открыть проект выберите Все файлы проекта, если они еще не выбраны, в раскрывающемся списке рядом с полем Имя файла.
- Перейдите к EXE-файлу, выберите его и щелкните Открыть. Файл появится как новый проект в текущем решении.
- Выберите новый файл и запустите отладку приложения, выбрав команду выполнения, например Начать отладку в меню Отладка.
См. также
- Параметры отладчика и подготовка
- Безопасность отладчика
- DBG-файлы
Отладка приложений Windows с помощью отладчика Windows
Для отладки приложений Windows можно использовать отладчики Windows (WinDbg, CDB и NTSD). Используйте средство PLMDebug , чтобы контролировать приостановку, возобновление и завершение работы приложения Windows во время отладки.
Чтобы выполнить отладку приложения для Windows с управляемым кодом, загрузите расширение отладки SOS (sos.dll) и компонент доступа к данным (mscordacwks.dll). Дополнительные сведения см. в статье Отладка управляемого кода с помощью отладчика Windows.
Отладчики Windows отделены от отладчика Visual Studio. Сведения о различиях между отладчиками Windows и Отладчиком Visual Studio см. в разделе Отладка Windows.
