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.
O depurador do Visual Studio fornece muitos recursos poderosos para ajudá-lo a depurar seus aplicativos. Este tópico fornece uma forma rápida de aprender algumas das funcionalidades básicas.
Criar um novo projeto
Abra o Visual Studio e crie um projeto.
Se a janela Iniciar ainda não estiver aberta, selecione Arquivo > Janela Iniciar. Na janela Iniciar, selecione Criar um novo projeto. Na caixa de pesquisa, digite "Projeto vazio" e selecione o modelo Projeto vazio C++.
Se não vir o modelo de projeto, abra o Visual Studio Installer. Escolha as tarefas de desenvolvimento de área de trabalho com C++, depois escolha Modificar.
Visual Studio cria o projeto.
Criar um novo ficheiro fonte chamado
MyDbgApp.cppNo MyDbgApp.cpp, substitua o seguinte código
int main() { return 0; }com este código (não remover
#include "stdafx.h"):#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(); }
Definir um ponto de interrupção
Um breakpoint é um marcador que indica onde o Visual Studio deve suspender o seu código em execução para que possa verificar os valores das variáveis, o comportamento da memória ou se um determinado ramo de código está a ser executado. É o recurso mais básico na depuração.
Para definir o ponto de interrupção, clique na margem à esquerda da chamada de função
doWork(ou selecione a linha de código e pressione F9).
Agora pressione F5 (ou escolha Depurar > Iniciar Depuração).
O depurador pausa onde defines o ponto de interrupção. A declaração onde o depurador e a execução da aplicação estão pausados é indicada pela seta amarela. A linha com a chamada de
doWorkfunção ainda não foi executada.Sugestão
Se tiver um ponto de interrupção num ciclo ou numa recursão, ou se tiver muitos pontos de interrupção pelos quais passa frequentemente, use um ponto de interrupção condicional para garantir que o seu código é suspenso SOMENTE quando condições específicas forem satisfeitas. Um ponto de interrupção condicional economiza tempo e também pode facilitar a depuração de problemas difíceis de reproduzir.
Ao tentar depurar falhas relacionadas à memória em C++, você também pode usar pontos de interrupção para inspecionar valores de endereço (procure NULL) e contagens de referência.
Navegar no código
Existem diferentes comandos para instruir o depurador a continuar. Apresentamos um comando útil de navegação de código que está disponível a partir do Visual Studio 2017.
Enquanto estiver pausado no ponto de interrupção, passe o rato sobre a instrução c1.push_back(20) até que o botão verde Run to Click
apareça e, em seguida, pressione o botão Run to Click.
O aplicativo continua a execução, chamando doWorke pausa na linha de código onde você clicou no botão.
Os comandos comuns do teclado usados para percorrer o código incluem F10 e F11. Para instruções mais detalhadas, consulte Primeira olhar sobre o depurador.
Inspecionar variáveis em uma dica de dados
Na linha de código atual (marcada pelo ponteiro de execução amarelo), passe o rato sobre o objeto
c1para mostrar uma dica de dados.
A dica de dados mostra-lhe o valor atual da variável
c1e permite-lhe inspecionar as suas propriedades. Ao depurar, se vir um valor inesperado, provavelmente tem um erro nas linhas de código anteriores ou de chamada.Expanda a dica de dados para ver os valores atuais das propriedades do objeto
c1.Se quiser fixar o tooltip para que possa continuar a ver o valor de
c1enquanto executa o código, clique no pequeno ícone de alfinete. (Pode mover a dica de dados fixada para um local conveniente.)
Edite o código e continue a depurar
Se identificar uma alteração que deseja testar no seu código durante uma sessão de depuração, também pode fazê-lo.
Clique na segunda instância de
c2.front()e alterec2.front()parac2.back().Pressione F10 (ou 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 o uso de editar e continuar e sobre as limitações de funcionalidades, consulte Editar e Continuar.
Próximos passos
Neste tutorial, você aprendeu como iniciar o depurador, percorrer o código e inspecionar variáveis. Pode querer ter uma visão geral das funcionalidades do depurador, juntamente com links para mais informações.