Execução e depuração

Configurações

Para cada destino no seu projeto (para projetos do CMake, Makefile e Gradle), o CLion gera uma configuração que pode ser criada e executada e permite que você configure ferramentas externas para executar antes/após a fase de compilação em uma caixa de diálogo da interface de usuário separada.

Configurações

Modelos de configuração

Use modelos de configuração para criar configurações para testes de unidades, depuração remota ou execução comum de aplicativos.

Configuração de execução

Você pode alterar o executável de qualquer configuração de sua escolha ou até mesmo tornar uma configuração não executável, alterando esse valor para "Not selected".

Compile seu projeto pressionando Ctrl+F9 e execute a configuração selecionada no momento com Shift+F10.

Configuração de depuração

Para depurar, pressione Shift+F9.

Para ajudá-lo a inspecionar o estado do seu código durante a depuração, o CLion equipa você com muitos atalhos úteis, como "Step over/into" (F8/F7), "Step out" (Shift+F8) ou "Run to cursor" (Alt+F9).

Compilação e execução customizáveis

custom_target

Build Targets independentes do sistema de compilação permitem adicionar destinos personalizados e configurar quaisquer ferramentas a serem usadas para compilar/limpar o destino.

Para executar e depurar destinos personalizados do CLion, crie uma configuração de execução/depuração correspondente usando o modelo Custom Build Application.

Recompile um único arquivo

Para acelerar seus ciclos de desenvolvimento no CLion ao trabalhar com o CMake ou projetos de banco de dados de compilação, use a função Recompile (Shift+Ctrl+F9). Essa função executa novamente a compilação para um arquivo selecionado, sem acionar a recompilação de todo o projeto.

Tipos de compilação de depuração/liberação

Ao usar o CMake, alterne entre perfis do CMake (e tipos de compilação) usando o alternador de configurações de execução na barra de ferramentas ou no pop-up do alternador de configurações Run (Shift+Alt+F10)/Debug (Shift+Alt+F9).

Entrada/saída

O CLion usa PTY como uma unidade de E/S, o que significa que você pode esperar um comportamento semelhante à execução do seu projeto em um terminal, até mesmo no Windows.

Depuração

O CLion se integra ao back-end GDB em todas as plataformas e ao LLDB no macOS e Linux.

Anexar a um processo

Anexar a um processo

O CLion permite que você depure processos, executados na mesma máquina ou em uma máquina remota, mas não iniciados no IDE, anexando-os com o uso do PID ou do nome desses processos. Beneficie-se com a UI do depurador integrado do CLion.

Pontos de interrupção

O CLion inclui um depurador integrado para ajudá-lo a inspecionar a execução do seu código. Você pode selecionar entre vários tipos de pontos de interrupção no CLion (todos os pontos de interrupção podem ser revisados em uma caixa de diálogo separada (disponível em Ctrl+Shift+F8):

Pontos de interrupção
  • Pontos de interrupção de linha são a maneira mais fácil de depurar seu código. Basta definir um ponto de interrupção com o mouse clicando na medianiz à esquerda de uma linha.
  • Pontos de interrupção simbólicos ajudam a interromper a execução do programa quando uma função específica começa a ser executada. Localize um símbolo pelo nome, aproveitando a complementação de código, para ir até a função apropriada.
  • Pontos de interrupção de exceção ajudam a capturar qualquer exceção lançada sem nenhum incômodo extra.
Definir ponto de execução

Definir ponto de execução

Com uma ação Set Execution Point to Cursor, você pode mover-se para frente e para trás na execução do seu programa durante a depuração, interromper loops ou reiniciá-los, selecionar outro branch em uma cláusula if-else ou instrução switch-case e até mesmo pular loops completamente. O processo é tão simples quanto arrastar e soltar uma seta na medianiz até a linha de seu interesse.

Inspeções e avaliações

A descrição de todas as variáveis disponíveis, incluindo o conteúdo de contêineres STL, é inserida na guia "Variables" da janela de ferramentas "Debug". Lá, você pode observar e até mesmo alterar qualquer valor sem interromper a sessão de depuração atual:

Avaliar expressão

A guia GDB/LLDB fornece acesso ao console GDB/LLDB, enquanto as visões Frame e Watches ajudam a investigar qualquer problema com mais detalhes. Como bônus, ao selecionar um símbolo para inspeção, você pode se beneficiar com complementação automática.

Além disso, basta pressionar Alt+F8 para avaliar qualquer expressão durante uma sessão de depuração.

Exibição de variáveis embutidas

Exibição de variáveis embutidas

Com esse recurso, você pode exibir valores de variáveis atuais diretamente no editor (ao lado da declaração de variável). Não é necessário alternar para a guia "Variables" da janela de ferramentas "Debug"!

Disasm

Exibição de disassembly

Leia o código assembly, realçado corretamente no editor, e percorra-o para investigar o problema.

Enquanto percorre o código de assembly, adicione/remova pontos de interrupção em linhas de instrução. Para a configuração não padrão desses pontos de interrupção de endereço, use o menu de contexto com o botão direito do mouse.

Com suporte para GDB e LLDB.

Exibição da memória

Exibição da memória

A exibição "Memory" esvazia a memória atrás do ponteiro no modo de depuração. Para invocá-la, selecione uma variável de ponteiro na exibição de variáveis do depurador e pressione Ctrl+Enter.

Durante a revisão, se a exibição "Memory" estiver aberta, o CLion realçará as alterações de memória que ocorrerem na memória selecionada.

Navegue até um endereço específico na memória a partir da exibição "Memory". Use o valor hexadecimal que representa um endereço, uma variável de ponteiro ou chame o endereço (&) de qualquer variável na qual você esteja interessado.

O preenchimento de código ajudará você com os símbolos conhecidos.

Depurar como root

Depurar como root

O CLion pode executar e depurar sua aplicação com privilégios root: você só precisa selecionar essa opção na configuração de Execução/depuração correspondente. Isso funciona para aplicações CMake, Makefile, Gradle Native, Custom Build e CTest.

Depurando com core dumps

Depurando com core dumps

Uma ação Run | Open Core Dump… permite que você abra um core dump existente de um processo travado no CLion e depure-o lá. Os usuários podem inspecionar a exibição de quadros e variáveis, verificar a memória e a exibição de disassembly, avaliar expressões e executar comandos do depurador no console do depurador.

Exibição Parallel Stacks

Exibição Parallel Stacks

Ao depurar aplicações com multithreading, você precisa rastrear múltiplos threads ao mesmo tempo. A exibição Parallel Stacks está implementada como uma aba separada na janela de ferramentas Debug e mostra informações da pilha de chamadas de thread de todos os threads. Ela permite verificar os caminhos de chamadas e pontos de execução de todos os threads em execução.

Servidores de símbolos no Windows

Ao depurar, às vezes os símbolos da biblioteca não estão disponíveis na sua máquina local. Nesse caso, você pode usar um servidor de símbolos, um servidor de arquivos que armazena seus símbolos de depuração centralmente em um servidor, e não na máquina de cada desenvolvedor. No CLion para Windows, agora você pode configurar servidores de símbolos para o depurador em Settings | Build, Execution, Deployment | Debugger | Symbol Servers.

Saiba mais.