Pular para o conteúdo

Depurando programas em C

Vamos utilizar a interface gráfica do Visual Studio Code para depurar programas em C.

No terminal, abra o projeto linked_nodes que criamos anteriormente e o abra no Visual Studio Code.

Terminal window
cd ~/dev/c_cpp_projects/linked_nodes
code .

Para executarmos um programa, devemos configurar mais um arquivo chamado launch.json.

Se você tiver seguido os passos recomendados pelo capítulo Configurando o VSCode, ele estará definido no settings.json do perfil C/C++.

Acesse o menu de depuração clicando no ícone de bug na barra lateral do Visual Studio Code.

No topo do menu de depuração há um seletor para escolher a configuração de depuração. Clique nele e selecione a opção LLDB: build and launch C project (all files in root) para o seu sistema operacional.

Menu de seleção da configuração de depuração do Visual Studio Code, em que se vê a opção "LLDB: build and launch C project (all files in root) (Linux)" selecionada.
Selecionando a configuração de depuração no Visual Studio Code.

Clique no botão de play verde ao lado do seletor.

O Visual Studio Code irá compilar o projeto a partir da tarefa de compilação que configuramos anteriormente e abrirá uma nova janela de terminal com a saída desse processo.

Em seguida, ele executará o programa, o que aparecerá na aba Debug console, ao lado daquela do terminal, no canto inferior da tela.

Visual Studio Code com a aba de console de depuração aberta. Nela, está a saída da execução do programa: 1 2 3 4 5 6 7 8 9 10.
Saída da compilação e execução do programa no Visual Studio Code.

Coloque um breakpoint na linha 20 do arquivo main.c, em que há o seguinte trecho de código:

printf("Traversing the linked list\n");

Para fazer isso, basta clicar no espaço em branco logo à esquerda do número da linha.

Então, clique novamente no botão de play verde para executar o programa.

Visual Studio Code depurando o arquivo "main.c", tendo pausado no breakpoint na linha 20.
Usando um breakpoint no Visual Studio Code.

O programa interromperá a execução nessa linha, e exibirá todas as variáveis disponíveis naquele momento. Você pode então investigar o estado do programa e seguir a execução linha por linha.