Apreendendo a utilizar o GNU Debugger (parte 2)

Neste artigo falarei de backtrace. O que é? Como usar? Pra que serve? Também explorei um pouco mais sobre breakpoints e alguns comandos para controlar o fluxo do programa em execução. Tudo isso no nosso depurador favorito, o GNU Debugger.

[ Hits: 43.809 ]

Por: Ricardo Rodrigues Lucca em 24/09/2004 | Blog: http://aventurasdeumdevop.blogspot.com.br/


Continue e finish



Vamos iniciar definindo dois breakpoints. Um na linha 7 e outro na 9:

(gdb) b 7
Breakpoint 1 at 0x80483ca: file teste.c, line 7.
(gdb) b 9
Breakpoint 2 at 0x80483e4: file teste.c, line 9.

No artigo anterior terminamos falando do comando "next" e esquecemos de falar do "continue", que faz com que o programa retome seu curso normal de execução. Assim, se encontrar algum breakpoint ele irá parar normalmente.

(gdb) run
Starting program: /home/rlucca/C/t/a.out

Breakpoint 1, bla () at teste.c:7
7               scanf(" %d", &x);
(gdb) c
Continuing.
1

Breakpoint 2, bla () at teste.c:9
9               printf("X = %d\n", x);
(gdb) c
Continuing.
X = 51

Program exited with code 07.

Outro comando muito utilizado é o "finish". Ele retoma o curso normal de execução até o fim da função. Vejamos o que acontece!

(gdb) run
Starting program: /home/rlucca/C/t/a.out

Breakpoint 1, bla () at teste.c:7
7               scanf(" %d", &x);
(gdb) c
Continuing.
2

Breakpoint 2, bla () at teste.c:9
9               printf("X = %d\n", x);
(gdb) finish
Run till exit from #0  bla () at teste.c:9
X = 52
main () at teste.c:15
15      }
(gdb)

Isso ocorre porque na nossa linha 15 está localizado a chave que encerra a nossa função. Útil não? :D

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Fonte
   3. Continue e finish
   4. Mais breakpoints
   5. (un)display
   6. Backtrace, indo e vindo de funções
   7. Conclusão
Outros artigos deste autor

Introdução as Bibliotecas do C/C++

VIM avançado (parte 1)

VIM avançado (parte 2)

Uma pequena análise do Gentoo Linux

Criando um servidor de Ultima Online

Leitura recomendada

Tutorial OpenGL v2.0

Programando com uma granada de mão: uma visão da linguagem C

Utilizando a biblioteca NCURSES - Parte I

LivreNFE - O emissor Nfe open source para Linux

Reprodução de arquivos WAV com SDL_mixer e linguagem C

  
Comentários
[1] Comentário enviado por y2h4ck em 24/09/2004 - 10:30h

Como diram certos programadores, debbugar e uma arte que eu prefiro deixar a parte :D

Mas eu gosto de debbug ehehe sempre se encontra doces surpresas em cada
dissassemble :D

Maneiro o Artigo Jlluca..

abraços

[2] Comentário enviado por engos em 24/09/2004 - 13:13h

Nem da pra acreditar que foi você mesmo que fez o primeiro, esse ficou muito melhor! Nota 10!

Só uma coisa, segui seu artigo passo a passo e o "winheight" não funcionou comigo, onde digito isso e em que momento?

Ah, não achei que foi muita coisa para ser absorvida de uma única forma, até que achei o "básico", levando em consideração o assunto.

Parabéns pelo artigo!

[3] Comentário enviado por jllucca em 24/09/2004 - 13:23h

Aew, 'brigado pelos elogios y2h4ck e engos!

Sobre o "winheight" tava falando com o y2h4ck que em algumas maquinas que utilizo não achei ele(gdb 5.4). Deve ser porcausa das versões desatualizadas... Verifica se voce está com a versão 6.1.1, pois foi nessa que fiz o artigo :)

[]'s

[4] Comentário enviado por engos em 24/09/2004 - 17:20h

Infelizmente minha versão é a 5.3... :(

Mas é bom saber que atualizando tenho essa opção.

Valeu!

PS.: Não faço elogios, só falo a verdade como a vejo... :)

[5] Comentário enviado por macroney em 27/09/2004 - 14:40h

parabéns !
muito bom !!!

embora nem li tudo .......
mas vale ...

pô !, alguém conhece algum livro ou tem alguma apostila sobre Assembly , encontrei um em pt_BR , é novo, mas é muito superficial... eu acho ( embora nem programo em assembly) , Pois peguei uma apostila e me parece boa...

valeuz!

[6] Comentário enviado por wildtux em 16/01/2014 - 11:39h

Sei que o tópico é antigo. Mas mesmo assim parabéns pela iniciativa, está me ajudando muito a tirar algumas dúvidas, uso linux e gosto de usar também o cygwin.

Dica1: Pra quem ainda não se aventurou em Assembly, existem vários sites que ensinam sobre alguma coisa. Existem também alguns livros do autor Jon Erickson é só dar uma pesquisada.

Dica2: Pra quem quer debugar arquivos .exe no cygwin é só seguir o mesmo procedimento trocando o a.out pelo a.exe gerado no cygwin full.

Abraço ao jllucca, valeu cara! =D. Viva a comunidade, viva ao Linux!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts