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.
Uma vez iniciado o gdb, o prompt muda e temos três formas de
sair:
Digitando "quit";
Digitando "q";
Pressionando CONTROL+D.
Você deve ter percebido que a primeira e a segunda opção são
parecidas. É isso mesmo! Na verdade elas são a mesma opção, pois o
gdb nos permite fazer abreviações dos comandos, desde que isso não
gere ambiguidade com outro comando!
Para terminar essa página gostaria de dizer que podemos conseguir
ajuda do programa em tempo de execução digitando help.
Sendo que o help ainda aceita como parâmetro "algo" que queiramos
saber mais a respeito.
[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
[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...
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!
[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.
[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.
[6] Comentário enviado por wildtux em 16/01/2014 - 12:13h
Estou usando o gdb tanto no Linux quanto no cygwin. Muito bom o artigo. Já vi a parte 2 também, ficou realmente mais esclarecedora que a primeira, claro sem desmerecer a primeira. Boa iniciativa parabéns.