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


/Z7, /Zi, /ZI (формат отладочной информации)

Задают тип отладочной информации, создаваемой для программы, и место хранения этой информации: объектные файлы (OBJ) или база данных программы (PDB).

/Z{7|i|I}

Заметки

Данные параметры описаны в следующей таблице.

  • None
    Отладочная информация не создается, и компиляция производится быстрее.

  • /Z7
    Создается файл OBJ, содержащий полную символьную отладочную информацию и используемый отладчиком.Символьная отладочная информация содержит имена и типы переменных, а также функции и номера строк.Файл PDB не создается.

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

  • /Zi
    Создается база данных программы (PDB), содержащая информацию о типах и символьную отладочную информацию и используемая отладчиком.Символьная отладочная информация содержит имена и типы переменных, а также функции и номера строк.

    Параметр /Zi не влияет на оптимизацию.Тем не менее, параметр /Zi подразумевает параметр /debug; дополнительные сведения см. в разделе /DEBUG (создать отладочную информацию).

    Информация о типах размещается в файле PDB, а не в файле OBJ.

    С параметром /Zi можно использовать параметр /Gm (включение минимального перепостроения); в то же время параметр /Gm нельзя использовать при компиляции с параметром /Z7.

    При компиляции с параметрами /Zi и /clr атрибут DebuggableAttribute не будет помещаться в метаданные сборки; при необходимости его следует задать в исходном коде.Этот атрибут может повлиять на производительность приложения во время выполнения.Дополнительные сведения о том, как атрибут Debuggable влияет на производительность, и том, как можно скомпенсировать его эффект, см. в разделе Упрощение отладки образов.

  • /ZI
    В соответствии с приведенным выше описанием создается база данных программы, имеющая формат, поддерживающий функцию "Изменить и продолжить".Если необходимо использовать режим "Изменить и продолжить", то этот параметр должен быть использован.Поскольку большинство видов оптимизации несовместимо с функцией "Изменить и продолжить", использование параметра /ZI отменяет любые инструкции #pragma optimize в коде.

    Использование параметра /ZI приводит к применению в компиляции функций /Gy (включение компоновки на уровне функций) и /FC (полный путь к файлу исходного кода в папке Diagnostics).

    Параметр /ZI несовместим с параметром /clr (компиляция CLR).

    ПримечаниеПримечание

    Параметр /ZI доступен только при компиляции для целевой архитектуры x86; этот параметр компилятора недоступен в компиляторах для целевых платформ x64 или семейства процессоров Itanium (IPF).

Компилятор дает базе данных программы имя проект.pdb.При компиляции файла вне проекта компилятор создает базу данных с именем VCx0.pdb, где x — это основной номер используемой версии Visual C++.Компилятор внедряет имя базы данных PDB во все файлы OBJ, созданные с помощью этого параметра, указывая отладчику на местоположение символьной информации и информации о номерах строк.При использовании этого параметра файлы OBJ будут иметь более компактные размеры, поскольку отладочная информация хранится в файле PDB, а не в файлах OBJ.

При создании библиотеки из объектных файлов, созданных с помощью этого параметра, связанный с ними файл PDB должен быть доступен при компоновке программы с библиотекой.Это означает, что вместе с библиотекой следует распространять и файл PDB.

Чтобы создать библиотеку, содержащую отладочную информацию, без использования файлов PDB, необходимо использовать параметр компилятора, включающий режим совместимости с C 7.0 (/Z7).При использовании параметров, связанных с предкомпилированными заголовками, в файл PDB заносится отладочная информация как для предкомпилированного заголовка, так и для оставшегося исходного кода.При указании параметра базы данных программы параметр /Yd пропускается.

Установка данного параметра компилятора в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта.Дополнительные сведения см. в разделе Открытие свойств страниц проекта.

  2. Откройте папку C/C++.

  3. Выберите страницу свойств Общие.

  4. Измените значение свойства Формат отладочной информации.

Установка данного параметра компилятора программным способом

См. также

Ссылки

Параметры компилятора

Настройка параметров компилятора