Lista de comandos do GDB e o que eles fazem

Lista de comandos do GDB e o que eles fazem
Ao trabalhar com C ++, C ou Fortran, você encontrará o GDB, um acrônimo para o GNU Depurador, Usado para programas de depuração escritos em C, C ++ e outros idiomas. O depurador pode ser chamado no terminal e vem pré -instalado no terminal Linux. Para se sentir confortável usando o depurador GNU no terminal, é essencial entender os vários comandos disponíveis e o que eles fazem. Este guia abrange os comandos mais importantes enquanto dá exemplos de como usá -los. Confira -os!

Comandos comuns do GDB

Existem várias maneiras de invocar o depurador GNU. Você pode digitar diretamente GDB no terminal para abrir seu console.

Como alternativa, você pode chamar o depurador com um arquivo executável. Se você possui um arquivo executável, como um programa C ou C ++, que deseja depurar, você pode compilá -lo usando o -g opção. Para o nosso exemplo, usaremos um amostra1.cpp arquivo.

Para compilá -lo usando o compilador G ++, o comando será:

$ g ++ -g -o amostra1 amostra1.cpp

Aqui, estamos adicionando a opção -o para escrever o programa compilado ao arquivo nomeado amostra1.

Uma vez compilado, você pode invocar o depurador GNU enquanto anexar o arquivo de saída compilado para depuração. O comando será:

$ gdb sample1

Um console se abre e você pode usar os comandos GDB disponíveis para executar atividades diferentes. Os comandos comuns incluem:

1. desistir: Para sair do console do GDB, digite sair ou q.

2. correr [args]: Com base nas funções do programa, você pode invocar a função para executar usando este comando e adicionar os argumentos necessários. Para o nosso caso, temos o GetSquare função, que leva um argumento do número. Portanto, se precisarmos obter o quadrado de um número, digitamos correr seguido pelo número. Por exemplo, vamos pegar o quadrado de 6. A saída será como mostrado abaixo:

Na parte inferior, você pode observar que o programa retornou a saída do quadrado. Você pode executar mais opções com argumentos diferentes.

3. ajuda: Ele abre a página manual para o depurador GNU com todas as classes de comandos disponíveis para uso.

Você pode restringir a página de ajuda especificando qual classe de comandos você deseja obter a página manual deles. Para isso, a sintaxe é usada abaixo:

$ help [Class-Name]

Por exemplo, para obter a página manual da aula correndo, A saída a seguir será:

4. quebrar: Quando você precisar depurar o programa, você pode adicionar vários pontos de interrupção usando o comando Break. Além disso, existem várias maneiras de adicionar um ponto de interrupção.

As maneiras comuns incluem:

B [nome da função]
quebrar [número da linha]
Break [Nome da função]
Break *[endereço]

Por exemplo, se você conhece um nome de função específico no programa e deseja criar um ponto de interrupção para a depuração, pode usar a sintaxe anterior. Vamos criar um ponto de interrupção para uma função nomeada GetSquare No seguinte programa:

Na saída anterior, criamos o ponto de interrupção e as informações exibidas no console.

Se você tentar executar o programa, ele fará uma pausa no ponto de interrupção. Por exemplo, vamos obter o quadrado de 12 usando Execute 12.

O depurador é interrompido no ponto de interrupção onde o nome da função especificado é. Neste ponto, você pode depurar seu programa e prosseguir depois de ter tudo funcionando bem.

5. Continuar ou c: Quando a depuração é concluída, e você deseja retomar a execução do comando sem o ponto de interrupção do conjunto, execute o comando Continuar. Ele executará o comando até o próximo ponto de interrupção ou o final do programa. Se você deseja adicionar o número de vezes para repetir o comando continuar, adicione a contagem.

As duas sintaxes são:

continuar ou c
c [contagem de repetição]

Para o nosso caso, vamos continuar sem nenhuma contagem de repetição.

Dá a saída do comando interrompido. Se tivéssemos argumentos diferentes, isso forneceria cada resultado após um ponto de interrupção. Por exemplo, vamos invocar Execute 4 6 8, Em seguida, use o continuar comando para ver o que acontece.

Você notará após cada argumento que o programa atende a um ponto de interrupção. Quando executamos o comando Continuar, ele retoma sua execução.

6. próximo: Quando o programa atende a um ponto de interrupção, você pode digitar próximo ou n Para imprimir a próxima linha na execução.

7. excluir: Se você tiver diferentes pontos de interrupção e pontos de verificação, poderá excluí -los usando o seguinte comando. Se você correr d ou excluir Sem argumentos, ele exclui todos os pontos de interrupção e pontos de verificação. No entanto, você pode especificar qual excluir selecionando seu número.

8. claro: Para excluir um ponto de interrupção associado a um determinado nome da função, use o próximo comando claro seguido pelo nome da função:

Neste ponto, não temos mais nenhum ponto de interrupção em nosso programa.

Se excluir um ponto de interrupção não é uma opção, que tal desativá -los e habilitá -los sempre que desejar?

9. desativar e habilitar: Para desativar um ponto de interrupção, especifique seu número.

Posteriormente, use o comando Ativar seguido por seu número para ativá -lo de volta.

10. informações: Você pode obter os detalhes dos pontos de verificação disponíveis e pontos de interrupção. Use o comando a seguir para obter os detalhes de todos os pontos de interrupção ou pontos de verificação:

Informações de interrupção
Ponto de verificação de informações

Para especificar um ponto de interrupção ou ponto de verificação, use a seguinte sintaxe:

Informações de interrupção [número de interrupção do ponto de interrupção]
Ponto de verificação de informações [número de interrupção]

11. definir args: para definir uma lista de argumentos a ser usada ao executar o correr comando, use definido args seguido pelos argumentos. Por exemplo:

Definir args 2 4

Se invocarmos o comando de corrida, ele receberá o quadrado dos dois argumentos.

Você pode visualizar a lista disponível de argumentos usando o Mostre args comando.

Conclusão

Cobrimos a lista de comandos mais comum do GDB no Linux. Com um pouco de prática, ficará mais fácil usar os comandos para obter diferentes funcionalidades. Felizmente, este artigo forneceu uma vantagem ao usar os comandos do depurador GNU.