/Z7, /Zi, /ZI (depurar formato de informações)
Selecione o tipo de informações de depuração criado para o seu programa e que essas informações são mantida em arquivos do objeto (.obj) ou em um banco de dados (PDB) do programa.
/Z{7|i|I}
Comentários
As opções são descritas na tabela a seguir.
Nenhum
Não produz informações de depuração, então a compilação é mais rápida./Z7
Gerencia um arquivo .obj que contém informações de depuração simbólicas completas para uso com o depurador. Informações de depuração simbólicas inclui os nomes e tipos de variáveis, bem como funções e números de linha. Nenhum arquivo .pdb é gerado.Para distribuidores de bibliotecas de terceiros, há uma vantagem de não ter um arquivo .pdb. No entanto, arquivos .obj para cabeçalhos pré-compilados são necessários durante a fase de link, e a depuração. Se houver apenas informações de tipo (e nenhum código) nos arquivos de objeto .pch, você também precisará compilar com /Yl (injetar referência PCH para biblioteca de depuração).
/Zi
Produz um banco de dados do programa (PDB) que contém informações de tipo e informações de depuração simbólica para uso com o depurador. Informações de depuração simbólicas inclui os nomes e tipos de variáveis, bem como funções e números de linha./Zi não afeta otimizações. No entanto, /Zi implica /debug; consulte /DEBUG (gerar informações de depuração) para mais informações.
As informações de tipo são colocada no arquivo de .pdb, e não no arquivo .obj.
É possível usar /Gm (habilitar recompilação manual) com /Zi, desde que /Gm não esteja disponível para compilar com /Z7.
Para compilar com /Zi e /clr, o atributo de DebuggableAttribute não será colocado nos metadados do assembly; se desejar, você deverá especificá-lo no código-fonte. Esse atributo pode afetar o desempenho de tempo de execução do aplicativo. Para obter mais informações sobre como o atributo Depurável afeta o desempenho e como você pode alterar o impacto do desempenho, consulte Facilitando a depuração de uma imagem.
/ZI
Gerencia uma banco de dados do programa, conforme descrito acima, em um formato que suporta o recurso Editar e Continuar. Se você desejar usar a depuração Editar e continuar, você deve usar esta opção. Como a maioria das otimizações são incompatíveis com Editar e Continuar, usar /ZI desativa quaisquer instruções de #pragma optimize em seu código./ZI faz com que /Gy (habilitar vinculação do nível de função) e /FC (caminho completo do arquivo de código-fonte no diagnóstico) sejam usados em sua compilação.
/ZI não é compatível com /clr (compilação do Common Language Runtime).
Dica
/ZI está disponível somente no compilador destinado a x86; esta opção de compilador não está disponível nos compiladores destinados a x64 ou processadores ARM.
O compilador nomeia o banco de dados do programa project.pdb. Se você criar um arquivo sem um projeto, o compilador cria uma base de dados chamado VCx. 0.pdb, onde x é a versão principal de Visual C++ em uso. O compilador insere o nome do PDB em cada arquivo .obj criado usando essa opção, apontando o depurador ao local de informações simbólicas de linha de número. Quando você usar essa opção, os arquivos .obj ficarão menores, pois as informações de depuração ficam armazenadas no arquivo de .pdb, em vez de nos arquivos .obj.
Se você criar uma biblioteca de objetos que foram criados usando essa opção, o arquivo associado de .pdb deve estar disponível quando a biblioteca é vinculada a um programa. Portanto, se você distribui a biblioteca, você deve distribuir o PDB.
Para criar uma biblioteca que contém informações de depuração sem utilizar arquivos .pdb, você deve selecionar a opção C 7.0-Compatible (/Z7) de compilador. Se você usar as opções de cabeçalho pré-compilado, as informações de depuração do cabeçalho pré-compilado e o restante do código de origem serão colocados no PDB. A opção /Yd é ignorada quando a opção de Banco de Dados do programa é especificada.
Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio
Abra a caixa de diálogo Páginas de Propriedade do projeto. Para obter detalhes, consulte Como abrir páginas de propriedade do projeto.
Clique na pasta C/C++.
Clique na página de propriedades Geral.
Altere a propriedade de Formato de Informação de Depuração.
Para definir essa opção do compilador via programação
- Consulte DebugInformationFormat.