/DEBUG (Создание сведений об отладке)

Параметр /DEBUG компоновщика создает файл сведений отладки для исполняемого файла.

Синтаксис

/DEBUG[:{FASTLINK||FULLNONE}]

Замечания

Параметр /DEBUG помещает данные отладки из связанных файлов объектов и библиотек в файл базы данных программы (PDB). Он обновляет файл PDB во время последующих сборок программы.

Исполняемый файл (EXE или DLL-файл), созданный для отладки, содержит имя и путь к соответствующему PDB. Отладчик считывает внедренное имя и использует PDB при отладке программы. Компоновщик использует базовое имя программы и расширение .pdb для имени базы данных программы и внедряет путь, в который он был создан. Чтобы переопределить этот параметр по умолчанию, задайте /PDB параметр и укажите другое имя файла.

Этот /DEBUG:FASTLINK параметр доступен в Visual Studio 2017 и более поздних версиях. Этот параметр создает ограниченный PDB, который индексирует данные отладки в файлах объектов и библиотеках, используемых для создания исполняемого файла, а не полной копии. Эту ограниченную PDB можно использовать только для отладки с компьютера, на котором были созданы двоичные файлы и ее библиотеки. Если вы развертываете двоичный файл в другом месте, его можно отлаживать удаленно с компьютера сборки, но не непосредственно на тестовом компьютере. Так как Visual Studio 2019, /DEBUG:FULL время связывания значительно улучшилось и /DEBUG:FASTLINK не всегда быстрее /DEBUG:FULL. Так как /DEBUG:FASTLINK больше не предоставляет больших улучшений времени сборки и приводит к более медленной отладке по сравнению /DEBUG:FULLс тем, этот параметр больше не рекомендуется.

PDB /DEBUG:FASTLINK можно преобразовать в полную PDB, которую можно развернуть на тестовом компьютере для локальной отладки. В Visual Studio используйте диалоговое окно "Страницы свойств" , как описано ниже, чтобы создать полную PDB для проекта или решения. В командной строке разработчика можно использовать mspdbcmf.exe средство для создания полной PDB.

Параметр /DEBUG:FULL перемещает все сведения о закрытых символах из отдельных продуктов компиляции (файлы объектов и библиотеки) в один PDB и может быть самой многовременной частью ссылки. Тем не менее полный PDB-файл можно использовать для отладки исполняемого файла, когда недоступны другие продукты сборки, например при развертывании исполняемого файла.

Параметр /DEBUG:NONE не создает PDB.

Указание /DEBUG без дополнительных аргументов эквивалентно указанию /DEBUG:FULL.

Параметр компилятора /Z7 (совместимая C7) приводит к тому, что компилятор оставляет сведения об отладке в файлах объекта (OBJ). Вы также можете использовать /Zi параметр компилятора (База данных программы) для хранения сведений об отладке в PDB для OBJ-файла. Компоновщик сначала ищет PDB объекта в абсолютном пути, написанном в OBJ-файле, а затем в каталоге, который содержит OBJ-файл. Нельзя указать имя или расположение PDB объекта компоновщику.

/INCREMENTAL подразумевается при /DEBUG указании.

/DEBUG изменяет значения по умолчанию для /OPT параметра от REF NOREF и до ICF NOICF, поэтому, если вы хотите исходные значения по умолчанию, необходимо явно указать /OPT:REF или /OPT:ICF после этого /DEBUG параметра.

Невозможно создать EXE или БИБЛИОТЕКУ DLL, содержащую сведения об отладке. Сведения об отладке всегда помещаются в OBJ или PDB-файл.

Задание данного параметра компоновщика в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Выберите страницу свойств отладки компоновщика>.

  3. Измените свойство Generate Debug Info , чтобы включить или отключить создание PDB. Это свойство включается /DEBUG:FASTLINK по умолчанию в Visual Studio 2017 и более поздних версиях.

  4. Измените свойство "Создать полный файл базы данных программы", чтобы включить /DEBUG:FULL полное создание PDB для каждой добавочной сборки.

Задание данного параметра компоновщика программным способом

  1. См. раздел GenerateDebugInformation.

См. также

Справочник по компоновщику MSVC
Параметры компоновщика MSVC