Configurações do projeto para uma configuração de depuração do C++

É possível alterar as configurações de projeto para uma configuração de depuração C ou C++ na caixa de diálogo Páginas de Propriedades, conforme discutido em Como definir as configurações de depuração e de versão. As tabelas a seguir mostram como localizar configurações relacionadas ao depurador na caixa de diálogo Páginas de Propriedades.

Observação

As configurações de projeto de depuração na categoria Propriedades de Configuração/Depuração para aplicativos UWP e os componentes que são escritos em C++. Consulte Iniciar uma sessão de depuração (VB, C#, C++ e XAML).

Cada configuração de propriedade de depuração é automaticamente gravada e salva no arquivo “por usuário” (.vcxproj.user) para sua solução quando salva sua solução.

Especifique qual depurador usar na caixa de listagem Depurador para iniciar, conforme descrito na tabela a seguir. Sua escolha afetará as propriedades visíveis.

A pasta propriedades de configuração (categoria de depuração)

Configuração Descrição
Depurador a ser inicializado Especifica o depurador para executar, com as seguintes opções:

- Depurador Local do Windows
- Depurador Remoto do Windows
- Depurador do Navegador da Web
- Depurador de Serviço Web
Comando (Depurador Local do Windows) Especifica o comando para iniciar o programa que você está depurando no computador local.
Comando Remoto (Depurador Remoto do Windows) O caminho para o .exe no computador remoto. Digite o caminho exatamente como você o digitaria no computador remoto.
Argumentos de Comando (Depurador Local do Windows)

Argumentos de Comando Remoto (Depurador Remoto do Windows)
– Especifica argumentos para o comando especificado anteriormente.

Você pode usar os seguintes operadores de redirecionamento nesta caixa:

< file
Lê o stdin do arquivo.

> file
Grava stdout no arquivo.

>> file
Acrescenta o stdout ao arquivo.

2>file
Grava stderr no arquivo.

2>>file
Acrescenta o stderr ao arquivo.

2> &1
Envia a saída de stderr (2) para a mesma localidade que o stdout (1).

1> &2
Envia a saída de stdout (1) para a mesma localidade que o stderr (2).

Na maioria dos casos, esses operadores serão aplicáveis somente para aplicativos de console.

Se precisar fazer os caracteres de escape no comando, é possível usar valores ASCII, como %25 para substituir %. Se você usar o comando Iniciar Depuração, as aspas duplas escaparão dos comandos anteriores, como "<" para substituir <.
Diretório de trabalho Especifica o diretório de trabalho do programa que está sendo depurado, relativo ao diretório do projeto onde o EXE está localizado. Se você deixar isso em branco, o diretório de trabalho será o diretório do projeto. Para depuração remota, o diretório do projeto será no servidor remoto.
Anexar (Depurador Local do Windows e Depurador Remoto do Windows) Especifica se inicia ou anexa ao aplicativo. A configuração padrão é Não.
Nome do Servidor Remoto (Depurador Remoto do Windows) Especifica o nome de um computador (diferente do seu) no qual você deseja depurar um aplicativo.

A macro de build RemoteMachine é definida com o valor desta propriedade; para obter mais informações, confira Macros para comandos e propriedades de compilação.
Conexão (Depurador Remoto do Windows) Permite que você alterne entre tipos de conexão padrão e sem autenticação para depuração remota. Especifique um nome do computador remoto na caixa de Nome do Servidor Remoto. Tipos de conexão incluem o seguinte:

- Remoto sem Autenticação do Windows
- Remoto Sem Autenticação

Observação Depuração remota sem a autenticação pode deixar o computador remoto vulnerável às violações de segurança. O modo de Autenticação do Windows é mais seguro.

Para obter mais informações, confira Configuração de depuração remota.
URL HTTP (depurador de serviço Web e depurador de navegador da Web) Especifica a URL no qual o projeto que você está depurar está localizado.
Tipo de Depurador Especifica o tipo de depurador a ser usado: Somente Nativo, Somente Gerenciado, Somente GPU, Misto, Automático (padrão) ou Script.

- Apenas Nativo é para código C++ não gerenciado.
- Gerenciado Somente é para código executado no Common Language Runtime (código gerenciado).
- Misto invoca depuradores para código gerenciado e não gerenciado.
- Automático determina o tipo do depurador com base no compilador e as informações de EXE.
- Script chama um depurador para scripts.
- Somente GPU é para o código C++ AMP que é executado em um dispositivo GPU ou no rasterizador de referência de DirectX. Consulte Depuração de código de GPU.
Ambiente (Depurador Local do Windows e Depurador Remoto do Windows) Especifica variáveis de ambiente para o programa que você está depurando. Use a sintaxe padrão da variável de ambiente (por exemplo, PATH="%SystemRoot%\..."). Essas variáveis substituem o ambiente do sistema ou são mescladas com o ambiente do sistema, dependendo da configuração de Ambiente de Mesclagem. Quando você clica na coluna direita, uma opção "Editar..." aparece. Selecione esse link para abrir o Editor de Propriedades e editar variáveis de ambiente. Para adicionar várias variáveis de ambiente, use o Editor de Propriedades e adicione uma variável por linha.
Ambiente de Mesclagem (Depurador Local do Windows) Determina se as variáveis que são especificadas na caixa Ambiente serão mescladas com o ambiente definido pelo sistema operacional. A configuração padrão é Sim.
Depuração de SQL (todos, com exceção do Depurador do Conjunto de MPI) Permite a depuração de procedimentos SQL do seu aplicativo Visual C++. A configuração padrão é Não.
Tipo de Acelerador de Depuração (somente depuração de GPU) Especifica o dispositivo GPU a ser usado para depuração. A instalação de drivers de dispositivo para dispositivos compatíveis com GPU adicionará outras opções. A configuração padrão é GPU – Emulador de Software.
Comportamento de ponto de interrupção padrão GPU (somente depuração de GPU) Especifica se um evento de ponto de interrupção deve ser gerado para cada thread em um warp SIMD. A configuração padrão é gerar o evento do ponto de interrupção apenas uma vez por encurvamento.
Acelerador Padrão de Amp Especifica o acelerador padrão de AMP ao depurar o código de GPU. Escolha Acelerador de software WARP para investigar se um problema é causado por hardware ou por um driver em vez de por seu código.
Diretório de Implantação (Depurador Remoto do Windows) Especifica o caminho no computador remoto onde a saída do projeto será copiada antes da inicialização. O caminho pode ser um compartilhamento de rede no computador remoto, ou pode ser um caminho para uma pasta no computador remoto. A configuração padrão está vazia, o que significa que a saída do projeto não é copiada para um compartilhamento de rede. Para habilitar a implantação de arquivos, você também deve marcar a caixa de seleção Implantar na caixa de diálogo Configuration Manager. Para obter mais informações, consulte Como criar e editar configurações.
Arquivos adicionais para implantar (depurador remoto do Windows) Se a propriedade do Diretório de Implantação estiver definida, é uma lista delimitada por ponto e vírgula de arquivos ou pastas adicionais a serem copiados para o diretório de implantação. A configuração padrão está vazia, o que significa que nenhum arquivo ou pasta adicional é copiado para o diretório de implantação. Para copiar o conteúdo de uma pasta para a mesma pasta no Diretório de Implantação, especifique um nome de pasta. Para habilitar a implantação de arquivos, você também deve marcar a caixa de seleção Implantar na caixa de diálogo Configuration Manager. Para obter mais informações, consulte Como criar e editar configurações.
Implantar Bibliotecas de Runtime de Depuração do Visual C++ (Depurador Remoto do Windows) Se a propriedade do diretório de implantação estiver definida, isso especifica se as bibliotecas em runtime de depuração do Visual C++ da plataforma atual devem ser copiadas para o compartilhamento de rede. A configuração padrão é Sim.

Pasta C/C++ (Categoria geral)

Configuração Descrição
Formato de Informação de Depuração (/Z7, /Zd, Zi, /ZI) Especifica o tipo de informação de depuração a ser criada para o projeto.

A opção padrão (/ZI) cria um banco de dados (PDB) do programa no formato Editar e Continuar compatível. Para obter mais informações, confira /Z7, /Zd, /Zi, /ZI (formato de informação de depuração).

Pasta C/C++ (Categoria de otimização)

Configuração Descrição
Otimização Especifica se o compilador deve otimizar o código que produz. A otimização altera o código que é executado. O código otimizado não corresponde mais ao código-fonte, o que dificulta a depuração.

A opção padrão (Desabilitado (/0d)) suprime a otimização. Você pode desenvolver com a otimização suprimida e, em seguida, habilitá-la quando você criar a versão de produção do seu código.

Pasta do vinculador (categoria de depuração)

Configuração Descrição
Gerar informações de depuração (/DEBUG) Informe ao vinculador para incluir informações de depuração, que terá o formato especificado por /Z7, por /Zd, por Zi ou por /ZI.
Gerar arquivo de banco de dados de programa (/PDB:name) Especifique o nome de um arquivo de banco de dados do programa (PDB) nesta caixa. Você deve selecionar ZI ou /Zi para obter o formato de informações de depuração.
Segmentar Símbolos Privados (/PDBSTRIPPED:filename) Especifique o nome de um arquivo de PDB nesta caixa, caso não queira incluir símbolos particulares no arquivo de PDB. Esta opção cria um segundo arquivo PDB quando você compila a imagem do programa com qualquer uma das opções de compilador ou vinculador que gera um arquivo PDB, como /DEBUG, /Z7, /Zd. Ou /Zi. Este segundo arquivo PDB omite os símbolos que você não desejaria enviar aos seus clientes. Para obter mais informações, confira /PDBSTRIPPED (Remover símbolos privados).
Gerar arquivo de mapa (/MAP) Informe ao vinculador para gerar um arquivo de mapa durante a vinculação. A configuração padrão é Não. Para obter mais informações, consulte /MAP (Gerar Mapfile).
Mapear nome do arquivo (/MAP:name) Se você escolher Gerar Arquivo de Mapa, poderá especificar o arquivo de mapa nesta caixa. Para obter mais informações, consulte /MAP (Gerar Mapfile).
Exportações de Mapa (/MAPINFO:EXPORTS) Inclui funções exportadas no arquivo de mapa. A configuração padrão é Não. Para obter mais informações, consulte /MAPINFO (Incluir informações no Mapfile).
Assembly Depurável (/ASSEMBLYDEBUG) Especifica configurações para a opção de /ASSEMBLYDEBUG de vinculador. Os valores possíveis são:

- Nenhum atributo depurável emitido.
- Acompanhamento de runtime e desabilitação de otimizações (/ASSEMBLYDEBUG). Essa é a configuração padrão,
- Nenhum acompanhamento em runtime e otimizações habilitadas (/ASSEMBLYDEBUG:DISABLE).
- <herdar dos padrões de projeto ou pai>.
– Para obter mais informações, consulte /ASSEMBLYDEBUG (Adicionar DebuggableAttribute).

Você pode alterar essas configurações na pasta Propriedades de Configuração (categoria Depuração) programaticamente usando a interface Microsoft.VisualStudio.VCProjectEngine.VCDebugSettings. Para obter mais informações, consulte VCDebugSettings.

Outras configurações de projeto

Para depurar tipos de projeto, como bibliotecas estáticas e DLLs, seu projeto do Visual Studio deve localizar os arquivos corretos. Quando o código-fonte está disponível, adicione bibliotecas estáticas e DLLs como projetos separados à mesma solução para facilitar a depuração. Para obter informações sobre como criar esses tipos de projeto, consulte Criar e usar uma DLL (Biblioteca de Vínculo Dinâmico) e Criar usando uma biblioteca estática. Com o código-fonte disponível, também é possível criar um novo projeto do Visual Studio ao selecionar Arquivo>Novo>Projeto do Código Existente.

Para depurar DLLs externas ao seu projeto, consulte Depurar projetos de DLL. Se você precisar depurar seu próprio projeto de DLL, mas não tiver acesso ao projeto para o aplicativo de chamada, consulte Como depurar a partir de um projeto de DLL.

Confira também