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.243 ]

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


Fonte



Estarei utilizando um código-fonte diferente do que utilizei no primeiro artigo. Esse programa contém uma função que será muito útil para exemplos futuros nesse artigo.

Assim, eis o fonte:

#include <stdio.h>

void bla( void )
{
        int x;

        scanf(" %d", &x);
        x += 50;
        printf("X = %d\n", x);
}

int main( void )
{
        bla();
}

Acho muito importante separar o código-fonte usado do artigo em si para não gerar confusão. Assim, se sente-se seguro em utilizar outro durante a leitura, porque não? Sinta-se a vontade!

Compile-o e prepare o gdb :)

$ gcc teste.c -g
$ gdb a.out

GNU gdb 6.1.1
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i486-slackware-linux"...Using host libthread_db library "/lib/libthread_db.so.1".

(gdb)

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 à linguagem C - Parte IV

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

Conceitos sobre o X-Window

Linux Básico - Parte II

Introdução à linguagem C - Parte III

Leitura recomendada

Criando aplicativos para o Mac OS X no GNU/Linux

Programando em Qt

Conio.h para Linux

Aleatoriedade em C

Escrevendo o caos em 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