Pular para o conteúdo

Depurando programas em C++

Também configuramos a depuração para projetos em C++ para quando todos os arquivos estiverem na raiz do projeto.

Para projetos que tiverem estruturas de diretórios mais complexas, é necessário criar um arquivo de depuração customizado.

No terminal, abra o projeto binary_tree que criamos anteriormente para guardar nossos projetos. Então o abra no Visual Studio Code.

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

Crie um arquivo chamado launch.json na pasta .vscode do projeto.

Utilize o snippet launch-json para inicializar o arquivo com o seguinte código:

{
"configurations": [],
"version": "0.2.0"
}

Dentro do vetor configurations, utilize o snippet cpp-launch. O conteúdo do arquivo será o seguinte:

{
"configurations": [
{
"args": [],
"cwd": "${workspaceFolder}",
"name": "LLDB: build and launch C++ project (all files in root) (Linux, Local)",
"preLaunchTask": "Clang: build C++ project (all files in root) (Linux, Local)",
"program": "${workspaceFolder}/${workspaceFolderBasename}",
"request": "launch",
"terminal": "console",
"type": "lldb"
}
],
"version": "0.2.0"
}

Como alteramos o nome da tarefa de compilação no arquivo tasks.json para Clang: build C++ project (Linux, Local), temos que atualizar o launch.json para refletir essa mudança, como mostrado no repositório do livro.

{
"configurations": [
{
"args": [],
"cwd": "${workspaceFolder}",
"name": "LLDB: build and launch C++ project (Linux, Local)",
"preLaunchTask": "Clang: build C++ project (Linux, Local)",
"program": "${workspaceFolder}/${workspaceFolderBasename}",
"request": "launch",
"terminal": "console",
"type": "lldb"
}
],
"version": "0.2.0"
}

Agora ponha um breakpoint na linha 10 do arquivo main.cpp, em que há o seguinte trecho de código:

tree.insert(3);

Acesse o menu de depuração, com um ícone de bug. No seletor de configuração, escolha a opção LLDB: build and launch C++ project (Linux, Local). Então clique no botão de play verde.

o código será compilado e executado no modo de depuração. Então, será interrompido no breakpoint selecionado.

Você pode executar linha a linha usando a tecla F10. Observando a variável tree.root, poderá perceber que a árvore está sendo construída conforme o esperado.

Visual Studio Code depurando o arquivo "main.cpp", tendo pausado no breakpoint na linha 1 0.
Usando um breakpoint no Visual Studio Code.