Strumenti Utente

Strumenti Sito


fisica:informatica:201415:esercitazioni:esercitazione7.2

Esercitazione debugging

L'esempio usato a lezione qua in formato tar ed i micro lucidi introduttivi.

Esercizio 1: sul debugging

Usare il debugger ddd per trovare cosa non va nel seguente programma C:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#define N 5
 
int main(void)
{
  int a[N];
  int i;
  srand(time(NULL));
  i=0;
  while (i<N)
    {
 
      a[++i]=rand()%2;
      printf("iterazione %d\n",i);
    } 
  printf("exiting ...\n"); 
}

in pratica il codice, salvato in “file.c” compilato con

gcc -Wall -pedantic -o ese file.c

ed eseguito con

$ ./ese

va inspiegabilmente in ciclo all'interno del ciclo. Per eseguire in modalita' interattiva di debugging:

  • Compilare con opzione “-g”, ad esempio
    gcc -Wall -pedantic -g -o ese file.c
  • lanciare l'eseguibile usando il debugger come in
    $ ddd ./ese

a questo punto e' possibile fermare il programma durante la sua esecuzione, ispezionare le variabili etc..

Esercizio 2: Debuggare codice altrui ...

Per i solutori piu' che abili Utilizzare DDD per provare a trovare cosa non va nei due programmi C in esempi.tar.

fisica/informatica/201415/esercitazioni/esercitazione7.2.txt · Ultima modifica: 20/04/2015 alle 07:22 (9 anni fa) da Susanna Pelagatti