Debug di un programma

Похожие документы
Fondamenti di Informatica T-1 CdS Ingegneria Informatica. Introduzione agli ambienti di sviluppo MS Visual Studio 2005/2008/2010 CodeLite 6.1.

Introduzione a Visual Studio 2005

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010

Introduzione a Visual Studio 2005

PER UTILIZZARE LCC IN LAB

Il compilatore Dev-C++

Debugger. Marco Alberti Programmazione e Laboratorio, A.A

COSTRUZIONE DI UN APPLICAZIONE

INTRODUZIONE ALLA PROGRAMMAZIONE

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Compilazione separata. Come realizzare correttamente un piccolo progetto su piu' file

2 Lavorare con Eclipse

Le basi del linguaggio Java

Tutorial su Codelite. Luca Ceriani 2011 Federico Cerutti

Lab 01 Introduzione a Codelite

Linguaggio C: introduzione

Fondamenti di Informatica II 6. Esercitazioni Laboratorio 1

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Primi passi col linguaggio C

ESEMPIO: le variabili LETTURA/SCRITTURA DI VARIABILI. Specifica Leggere da tastiera un intero, un carattere, un float e un double. Stamparli a video.

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Guida introduttiva su Eclipse. Ing. Marco Dell'Unto

Istruzioni Fatel Modulo CADI PRESENTAZIONE FILE LIQUIDAZIONE IVA

Funzioni, Stack e Visibilità delle Variabili in C

Spazio di indirizzamento virtuale

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

14Ex-Cap11.qxd :20 Pagina Le macro

Il Manuale di KXSLDbg. Keith Isdale Traduzione del documento: Samuele Kaplun Traduzione del documento: Simone Solinas

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

IL PRIMO PROGRAMMA IN C

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Installazione e configurazione DSFPA (Datasoftware Fattura Pubblica Amministrazione)

Linguaggio C: Introduzione ad ambienti di sviluppo integrati (IDE) e a Dev-C++ Università degli Studi di Brescia

Il linguaggio C. Puntatori e dintorni

Software RAID. 1. Per cominciare

Imagicle Hotel. Guida alla configurazione delle centrali Alcatel OXO fino alla Rel. 5.x 6.x

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Guida al primo utilizzo di EasyArchiviazione INTERFACCIA INIZIALE

Microsoft Access. Microsoft Access. Maurizio Rebaudengo, Paolo Garza 1. Microsoft Access. Creazione base di dati. Apertura di una base dati

Imagicle Hotel. Guida alla configurazione delle centrali innovaphone

Introduzione alla programmazione. Walter Didimo

Imagicle Hotel. Guida alla configurazione delle centrali Siemens Hipath 2000/3000

Linguaggio C - sezione dichiarativa: costanti e variabili

Nuove pagine e collegamenti

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

C: panoramica. Violetta Lonati

Classificazione: Pubblico Guida all installazione di una nuova versione di DigitalSign tramite Aggiornamento Automatico

Utilizzo delle Maschere in Microsoft Access

perror: individuare l errore quando una system call restituisce -1

Primi passi con Geogebra

Perché il linguaggio C?

PROCEDURA D INSTALLAZIONE DEL SOFTWARE DELLA CARTA TS-CNS. OBERTHUR su Windows 32 bit e 65 bit

Lab 01 Introduzione a Codelite

Compilazione on-line del Piano di Studio

Guida SWI-Prolog. Installazione. SWI-Prolog può essere scaricato dal sito web:

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.

Manuale EacqCE_Daemon. Versione manuale Copyright 2011 MMS Srl. Manuale EacqCE_Daemon Pagina 1

Importazione dati. e/fiscali Spesometro - Rel con gestionale e/satto. Gestionale e/satto

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Manuale di configurazione e utilizzo Barcode card

Windows. La prima realizzazione di un ambiente grafico si deve alla Apple (1984) per il suo Macintosh. La gestione dei file conserva la logica del DOS

L INTERFACCIA GRAFICA DI EXCEL

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

BlueJ: un ambiente per imparare Java

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Ambiente di sviluppo STEP 7 Micro/Win

Транскрипт:

Debug di un programma Col termine Debug si intende una fase di sviluppo del software, nella quale si cerca di eliminare gli errori dal programma Due tipi di errori: Errori sintattici, rilevati sempre dal compilatore in fase di compilazione Errori semantici, difficilmente rilevabili Esempio: un programma deve eseguire la somma di due numeri, ma il programmatore in un momento di distrazione ha usato il simbolo di operazione - invece del simbolo + CONSEGUENZE: il programma è sintatticamente corretto, ma non esegue ciò che è stato richiesto!!! Debug di un programma Il programmatore deve essere in grado, per ogni istruzione del proprio programma, di prevedere cosa farà tale istruzione, cioè Il programmatore deve conoscere in anticipo gli effetti derivanti dall eseguire una certa istruzione IDEA: per ogni istruzione del programma: a) Calcolo quali siano gli effetti nell eseguire l istruzione b) Eseguo tale istruzione c) Verifico che gli effetti siano effettivamente ciò che mi aspettavo Se la verifica fallisce, ho trovato un errore!!!

Uso del debug L ambiente di sviluppo ci mette a disposizione una serie di funzionalità per: Eseguire passo passo ogni istruzione Controllare lo stato del nostro programma Visualizzare il contenuto delle variabili (monitoraggio) Visualizzare lo stack delle chiamate a funzione Lancio di un programma e debug Premere il pulsante con l icona play per lanciare il programma Il programma viene lanciato in modalità debug (a indicare che è ancora sotto test) Da un punto di vista dell esecuzione non cambia niente ma vi dà la possibilità di andare a controllare il vostro codice istruzione per istruzione

Passi di debug È possibile controllare l esecuzione istruzione per istruzione (usando uno dei tasti step ) Basta premere uno di essi per lanciare il programma passo passo (al posto di play ) E se l istruzione chiama una funzione? Step Into continua il debug entrando nel codice della funzione Step Over continua il debug ripartendo dal punto immediatamente successivo alla chiamata di funzione (ovvero esattamente dopo la restituzione del valore) Se sono all interno di una funzione, con Step Out posso continuare il debug all istruzione che segue la return della funzione Breakpoints (1) Cominciare il debug dall inizio del programma può essere scomodo Possiamo inserire dei breakpoints Punti del programma che ci interessa monitorare Il programma esegue normalmente fino al breakpoint, poi passa in modalità debug Breakpoint Click per aggiungerne uno

Breakpoints (2) Una volta bloccata l esecuzione al raggiungimento di un breakpoint si può decidere Di continuare l esecuzione normalmente fino al prossimo breakpoint (pulsante play ) Di continuare il debug istruzione per istruzione (con uno dei vari step ) Nota: i breakpoint possono essere associati a condizioni e altre proprietà configurabili (es: si può indicare di attivare il breakpoint solo se una cera variabile è uguale a 0) Menu Debug Windows Breakpoints apre la finestra di configurazione e definizione dei vari breakpoints Monitoraggio variabili Tre finestre di monitoraggio delle variabili Auto Visualizza il contenuto delle variabili definite all interno dello scope corrente (e anche il valore di ritorno all uscita da una funzione!) Es: valore della variabile a prima dell inizializzazione Local Visualizza il contenuto delle variabili locali, ovvero tutte quelle visibili all interno della funzione corrente (nota: in caso di scope innestati con variabili con lo stesso nome, compaiono ripetizioni!) Watch Permette di inserire il nome della variabile da monitorare (occhio agli scope!) E possibile anche monitorare espressioni (es: a+b)

Finestra Call Stack Permette di visualizzare lo stack delle chiamate a funzione Alla chiamata di una funzione viene aggiunta una riga che mostra il valore dei parametri attuali All uscita di una funzione rimozione della riga (in cima) E possibile selezionare una qualsiasi delle righe, e le finestre di monitoraggio delle variabili recuperano lo stato corrispondente! Provare con funzioni ricorsive! Call stack del fattoriale ricorsivo Esercizio Rivisitato Creare un nuovo progetto per illinguaggio C (a tal scopo, utilizzare il progetto vuoto disponibile sul sito del corso) Nel file sorgente main.c, scrivere il seguente codice: #include <stdio.h> #include <stdlib.h> int main() { int a; a = 2+3; printf( Hello world! ); a = a-3; system( PAUSE ); } Compilare il programma Eseguire il programma Settare un break point all istruzione a= 2+3; Rieseguire il programma utilizzando il debug, e verificare cosa succede ad ogni istruzione

Esercizio Rivisitato ATTENZIONE: Non copiate il codice direttamente dal pdf, poichè vengono introdotti caratteri strani (non visibili) che rendono incompilabile il programma!!! #include <stdio.h> #include <stdlib.h> int main() { int a; a = 2+3; printf( Hello world! ); a = a-3; system( PAUSE ); } Cosa succede quando viene eseguita l istruzione a=a-3;??? Qual e il valore di a prima e dopo l esecuzione della variabile?