/DEBUG
(Создание сведений об отладке)
Параметр /DEBUG
компоновщика создает файл сведений отладки для исполняемого файла.
Синтаксис
/DEBUG
[:
{FASTLINK
||FULL
NONE
}]
Замечания
Параметр /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
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Выберите страницу свойств отладки компоновщика>.
Измените свойство Generate Debug Info , чтобы включить или отключить создание PDB. Это свойство включается
/DEBUG:FASTLINK
по умолчанию в Visual Studio 2017 и более поздних версиях.Измените свойство "Создать полный файл базы данных программы", чтобы включить
/DEBUG:FULL
полное создание PDB для каждой добавочной сборки.
Задание данного параметра компоновщика программным способом
- См. раздел GenerateDebugInformation.