Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste Quickstart, explora como usar o depurador do Visual Studio para depurar o seu código nativo em C++. Este artigo oferece uma forma rápida de aprender algumas das funcionalidades básicas para trabalhar no depurador.
Se não tiveres Visual Studio, podes instalar a versão de teste grátis na página de Downloads do Visual Studio.
Criar um novo projeto
Começa por criar um novo projeto, para teres algum código para verificar no depurador.
Abra o Visual Studio e crie um novo projeto.
Se a Janela Inicial não estiver aberta, selecione Ficheiro>Janela Inicial.
Na janela de Iniciar, selecione Criar um novo projeto.
Na janela Criar um novo projeto , defina os filtros e procure um modelo de projeto.
Na caixa Procurar modelos , introduza vazia.
Abra a lista pendente Idioma e selecione C++.
Na lista de resultados, selecione o modelo Empty Project para C++ e depois selecione Next.
Se não vires o modelo Empty Project para C++, seleciona a opção Continuar sem código.
Selecione ferramentas>Obter ferramentas e funcionalidades... , que abre o Instalador Visual Studio.
Na janela do Instalador, selecione a caixa de seleção para o desenvolvimento de ambiente de trabalho com carga de trabalho em C++ e depois selecione Modificar.
A sua instalação do Visual Studio atualiza-se para incluir a carga de trabalho C++ selecionada.
Após a atualização terminar, selecione Ficheiro>Janela Inicial e siga as instruções anteriores para selecionar o modelo necessário.
Configure o novo projeto:
Introduza um nome Project e nome da solução, ou use os valores padrão.
Utilize a Localização predefinida ou selecione Procurar (...) para criar o projeto numa pasta diferente.
Selecione Criar.
O Visual Studio cria o seu novo projeto e adiciona os ficheiros do projeto na pasta especificada.
Adicionar um ficheiro de projeto
Adiciona um ficheiro de código para teres conteúdo para testar no depurador.
No painel Explorador de Soluções, clique com o botão direito no seu <nomedo do projeto> e selecione Adicionar>Novo Item.
Se não vires o painel Explorador de Soluções, seleciona View>Explorador de Soluções.
No diálogo Adicionar novo item , introduza o nome do ficheiro MyDbgApp.cpp e depois selecione Adicionar.
O ficheiro abre no editor de código.
Adicione o seguinte código ao novo ficheiro.
#include <list> #include <iostream> using namespace std; void doWork() { list <int> c1; c1.push_back(10); c1.push_back(20); const list <int> c2 = c1; const int &i = c2.front(); const int &j = c2.front(); cout << "The first element is " << i << endl; cout << "The second element is " << j << endl; } int main() { doWork(); }Guarde as alterações dos ficheiros com o atalho de teclado Ctrl+S .
Definir um ponto de interrupção
Um breakpoint é um marcador que indica onde Visual Studio deve suspender o seu código em execução. Quando um ponto de interrupção é definido, pode olhar para os valores atuais das variáveis, examinar o comportamento da memória e verificar se um ramo específico de código está a funcionar. Os pontos de interrupção são a funcionalidade mais básica na depuração.
Para definir um ponto de interrupção, localize a chamada para a função
doWork()no código e depois selecione a margem esquerda na mesma linha.Quando é definido um ponto de interrupção, é apresentado um ponto vermelho na margem esquerda da linha de código correspondente.
Comece a depurar usando o atalho de teclado F5 (ou selecione Depurar>Iniciar Depuração).
A execução do código pausa imediatamente antes da chamada à
doWork()função.O depurador pausa onde defines o ponto de interrupção. Uma seta amarela identifica a instrução onde o depurador pausa a execução da aplicação.
Sugestão
Quando está a depurar falhas relacionadas com a memória no seu código C++, também pode usar pontos de interrupção para inspecionar valores de endereço (procure
NULL) e contagens de referências.
Definir pontos de interrupção condicionais
Se definir um ponto de interrupção num loop ou recursão, ou se tiver muitos pontos de interrupção que passa frequentemente, use um ponto de interrupção condicional.
Esta abordagem ajuda a garantir que o seu código é suspenso apenas quando condições específicas são cumpridas. Um ponto de interrupção condicional pode poupar tempo e também facilitar a depuração de problemas difíceis de reproduzir.
Analisa o teu código
O Visual Studio oferece várias formas diferentes de instruir o depurador a continuar com a execução da aplicação. O exemplo seguinte mostra um comando útil para percorrer o seu código.
Enquanto o código está em pausa no ponto de interrupção, passe o rato sobre a instrução c1.push_back(20) até aparecer o ícone verde Executar até ao clique (Executar até aqui)
Seleciona o ícone.
Enquanto o código está pausado no ponto de interrupção, passe o rato sobre a instrução c1.AddLast(20) até ver o ícone verde Executar para clicar (Executar execução para aqui).
Seleciona o ícone.
A aplicação continua a execução, chamando doWork, e pausa na linha de código onde selecionou Executar para clicar.
Os comandos comuns do teclado usados para percorrer o código incluem F10 e F11. Para instruções mais detalhadas, consulte Visão geral do depurador Visual Studio.
Inspecionar variáveis numa sugestão de dados
Pode inspecionar o estado das suas variáveis através da funcionalidade descrição de dados.
Na linha de código atual (marcada pelo ponteiro de execução amarelo), passe o rato sobre o
c1objeto para ver a ponta de dados.
A informação de dados
c1mostra o valor atual da variável e permite-lhe inspeccionar as suas propriedades.Quando estás a depurar, se vires um valor inesperado para uma variável, provavelmente tens um bug. O bug pode estar no código que faz a chamada à variável ou na linha anterior.
Expanda a informação para examinar os valores atuais da propriedade do objeto
c1.Para continuar a verificar o valor de
c1enquanto o código é executado, selecione o ícone do pino
na ponta de dados.A ação de afixar mantém a descrição de dados aberta. À medida que o código é executado, o valor na ponta fixada muda para mostrar o estado atual do objeto observado.
Podes mover a ponta fixada para qualquer local do IDE, por isso não te impede de observar outros itens durante a depuração.
Ativar o recarregamento a quente durante a depuração
Enquanto estás a depurar, se vires uma alteração que queiras testar no teu código, podes usar a funcionalidade Hot Reload (anteriormente chamada Editar e Continuar).
Selecione a segunda instância da
c2.front()instrução e altere o código parac2.back().Selecione F10 algumas vezes (ou selecione Debug>Step Over algumas vezes) para avançar o depurador e executar o código editado.
F10 avança o depurador uma instrução de cada vez, mas passa por cima das funções em vez de entrar nelas (o código que você ignora ainda é executado).
Para mais informações sobre a funcionalidade e limitações, consulte Configure Hot Reload.