Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Aprendendo a utilizar o GNU Debugger (parte 1)
Linux user
jllucca
26/01/2004
Em programação, como as vezes não temos como saber onde pode estar aquele erro maldito, um bom depurador pode ser o nosso melhor amigo. Nesse artigo falarei de breakpoints: o que são, como definí-los, porque utilizá-los e também outros comandos como o list, next, run e o print.
Por: Ricardo Rodrigues Lucca
[ Hits: 51747 ]
Conceito: 9.6   4 voto(s)4 voto(s)4 voto(s)4 voto(s)4 voto(s) + quero dar nota ao artigo

Introdução

Em programação, muitas vezes nos deparamos com becos sem saída por causa de erros que não temos nem idéia de onde possam estar.

Assim sendo, um depurador (vulgo: debugador) pode ser o nosso melhor amigo. Amigo que quando sabemos como tratá-lo, nos ajudará horrores! :).

O depurador de que vou falar é o GNU Debugger ou simplesmente, gdb. Nessa série de artigos irei mostrar como podemos utilizar o gdb para problemas comuns.

[]'s e boa leitura!

Próxima página >>




Páginas do artigo
   1. Introdução
   2. Iniciando
   3. Encerrando e pedindo ajuda no gdb
   4. gdb e gcc
   5. Carregamento e execução
   6. Um exemplo simples
   7. List, BreakPoints e Next

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por jose_maria em 20/05/2004 - 10:53h:

Parabéns pelo artigo. Eu estava realmente procurando informações de como usar o gdb.
Mas eu fiquei com algumas dúvidas:
- Eu não consegui executar o comando ctrl+pipe, simplesmente não aconteceu nada. Eu também não entendi para que serve o comando.
- O comando list não funcionou no meu gdb, fica assim:
(gdb) list
1 ../sysdeps/i386/elf/start.S: No such file or directory.
in ../sysdeps/i386/elf/start.S

Valeu cara.

[2] Comentário enviado por jllucca em 20/05/2004 - 20:54h:

CTRL+PIPE é usado para interromper o programa e gerar um arquivo core. Se o arquivo não for criado experimente fazer um "ulimit -c 99000" porque normalmente o pessoal gosta de deixar o limite dos arquivos cores para "0"(Zero) o que impossibilita a criação deles.

Quanto ao problema com o gdb estou com um igual na faculdade. Mas, quando descobrir como resolver posto aqui. A primeira coisa normalmente que agente vê se esta "OK" é vermos se compilamos os programas usando a flag "-g". To me sentido muito mal por não ter como usar o gdb, o jeito é fazer testes...

[3] Comentário enviado por jllucca em 26/05/2004 - 12:57h:

Quanto ao problema com o GDB, realmente era a flag "-g". Fiz testes aqui e consegui depurar o programa certinho fazendo :

$ g++ program.cpp -o programname -g
$ gdb programname
(gdb) list

Sem erros, enquanto que:
$ make clean
$ make all
$ gdb promname
(gdb) list
1 ../sysdeps/i386/elf/start.S: No such file or directory.
in ../sysdeps/i386/elf/start.S

Assim, estou tentando dinovo organizar o meu Makefile porque eh ele o gerador de caso. Quanto ao seu programa se quiser conversar por email fica muito melhor!

[]'s



[4] Comentário enviado por engos em 25/06/2004 - 11:42h:

Legal o artigo, mas você não o encerrou muito cedo?

Acho que ficou faltando comentar que não é necessário ser um arquivo de core para debugar o programa, sem contar que poderia ter sido colocado mais de um breakpoint ou como remover os breakpoints.

Ficou bem redigido e de fácil entendimento, aconselho a postar um artigo complementar que explore mais o gdb, principalmente outras opções, qualquer coisa posso ajudar.

[]s

[5] Comentário enviado por jllucca em 27/07/2004 - 00:24h:

Opa,

sobre o artigo ter acabado meio cedo. Realmente, estou pensando em escrever uma segunda parte. Mas, nada muito apressada que nem a segunda parte do void que como voce mesmo disse e depois eu fui ver realmente passa uma impressão meio vaga.

[]'s


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.