Фон
Существует несколько различных отладочных флагов, которые вы можете использовать с компилятором Visual Studio С++. Это:
- (нет)
- Не создавать отладочную информацию
- Более быстрое время компиляции
- /Z7
- Произвести полносимвольную отладочную информацию в файлах .obj с использованием формата CodeView
- /Zi
- Произвести полносимвольную отладочную информацию в файле .pdb для цели с использованием формата базы данных программы.
- Включает поддержку минимальных перестроек (/Gm), которые могут сократить время, необходимое для перекомпиляции.
- /ZI
- Производить отладочную информацию, такую как/Zi, за исключением поддержки Edit-and-Continue
Вопросы
-
Флаг/Gm несовместим с флагом /MP для сборки нескольких процессов (Visual Studio 2005/2008)
-
Если вы хотите включить минимальные перестроения, то флаг /Zi необходим над флагом /Z 7.
-
Если вы собираетесь использовать флаг /MP, по-видимому, нет никакой разницы между /Z 7 и/Zi, смотрящими на MSDN. Тем не менее, Документация SCons утверждает, что вы должны использовать /Z 7 для поддержки параллельных сборок.
Вопросы
-
Каковы последствия использования /Zi vs/Z7 в проекте Visual Studio С++?
-
Есть ли другие плюсы или минусы для любого из этих вариантов, которые я пропустил?
-
В частности, в чем преимущество одного файла формата базы данных программы (PDB) для целевых и нескольких файлов формата CodeView (.obj) для каждого источника?
Ссылки
MDSN/Z7,/Zi,/ZI (формат отладочной информации)
MSDN/MP (сборка с несколькими процессами)