Você está na página 1de 7

Programa de Educação Tutorial – PET Ciência da Computação

DDD – Data Display Debugger

O DDD é um front­end, uma interface gráfica para interação com o usuário, para 
depuradores de linha de comando, como o GDB. Ele é licenciado através da GPL. 
O DDD permite associar o programa que está sendo depurado com seu código­
fonte, além de exibir o código gerado em linguagem de máquina.
Sua grande vantagem está no fato de exibir a memória utilizada pelo  programa 
(como já diz o nome, data display). Em outras palavras, o DDD exibe as variáveis utilizadas 
pelo programa, juntamente com seu conteúdo, além de ponteiros com suas referências e 
estruturas de dados.

Link: http://www.gnu.org/software/ddd/

Depurando programa em C

Suponhamos que queremos depurar o seguinte programa, que apenas preenche um vetor de 
inteiros de “N” posições com o valor de sua posição (vetor[2] receberá 2) e que contém um 
ponteiro   apontando   para   a   variável   “i”   (sem   funcionalidade).   O   programa   foi   salvo   no 
arquivo “debug.c”. 

#include <stdio.h>

#define N 5

int main(){

    int i;

    int vetor[N];

    int *ponteiro = NULL;
    for (i = 0; i<N; i++){

        vetor[i] = i;

    }

    ponteiro = &i;
}

O primeiro passo para podermos depurá­lo, é com compilar ele a opção “­g”:

$ gcc ­o debug ­g debug.c
Programa de Educação Tutorial – PET Ciência da Computação

Agora, basta abrir o programa compilado com o DDD

$ ddd debug

A seguinte janela será aberta: 
Programa de Educação Tutorial – PET Ciência da Computação

O interessante do DDD está em ativar a “Data Window”, para vermos as variáveis utilizadas 
pelo programa, e a “Machine Code Window”, para ver o código de máquina gerado. Isso 
pode ser feito na guia “View”. Habilitando essas duas “janelas”, a tela ficará assim:

Com isso, já poderemos ver o código de máquina gerado.
Programa de Educação Tutorial – PET Ciência da Computação

Para depurar o programa, primeiramente precisamos inserir um “break­point”, onde 
o programa irá parar sua execução normal. Para isso, basta clicar com o botão direito do 
mouse na linha onde se quer que o programa pare e ir em “Set Break Point”. 
Feito   isso,   podemos   executar   o   programa,   clicando   em   “Run”.   O   programa 
executará até chegar no break­point (ele não executará a linha onde está o break­point) .

Podemos,   então,   executar  instrução  por  instrução   do  código   escrito  –   neste   caso  em  C, 
clicando em “Next”, ou ainda, instrução por instrução do código gerado em linguagem de 
máquina, clicando em “Nexti”
Programa de Educação Tutorial – PET Ciência da Computação

Para vermos como os dados do programa estão “organizados na memória”, ou seja, 
vermos o que há em cada variável, basta clicar duas vezes nas variáveis que desejamos 
conferir o conteúdo (no próprio código­fonte do programa exibido).
Programa de Educação Tutorial – PET Ciência da Computação

Para ver para onde os ponteiros estão apontando, basta dar um duplo clique no 
“endereço do ponteiro”, ou seja, na figura anterior, onde há (int *)0x0
Neste caso, clicamos ali após passarmos pela instrução que faz a variável “ponteiro” 
apontar para a variável “i” (ponteiro = &i).
Programa de Educação Tutorial – PET Ciência da Computação

Este foi apenas um exemplo simples de como utilizar o DDD para depurarmos um 
programa, vendo como suas variáveis estão organizadas na memória. O manual completo 
deste programa pode ser encontrado em: 
http://www.gnu.org/manual/ddd/html_mono/ddd.html

Escrito por Adriano Pereira 
Santa Maria, agosto de 2008

Você também pode gostar