Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio15:esercitazionia:esercitazione2

Questa è una vecchia versione del documento!


Esercitazione 2

Ancora esercizi su C e su libreria standard di IO. Tool: mtrace e valgrind.

Cercare di completare tutti gli esercizi durante le ore di laboratorio e nel caso come homework.

Esercizio 0: esperienza su preprocessing, compilazione e linking

Seguire l'esempio dei lucidi di proprocessing, compilazione e linking verificando i vari passi con i comandi nm, objdump o readelf ed ldd.
Vedere i manuali in linea dei comandi.

Esercizio 1: utilizzo di mtrace

Verificare gli accessi in memoria compiuti dalle funzioni scritte per l'esercizio n. 7 dell'Assegnamento1 (costruzione di binaryTree) utilizzando la funzione mtrace e l'utility mtrace, questi strumenti tracciano le azioni di allocazione e deallocazione di memoria compiute dal programma per verificare la presenza di memory leak cioe' memoria non deallocata.

Per fare questo procedere come segue:

  • leggere le informazioni in man 3 mtrace
  • includere l'header mcheck.h
  • inserire la chiamata alla funzione di libreria mtrace() all'inizio della parte del programma C che vogliamo verificare
  • inserire la chiamata alla funzione di libreria muntrace() alla fine della parte del programma C che vogliamo verificare
  • compilare il file da verificare con opzione -g per includere le informazioni di debugging.
  • settare la variabile di ambiente MALLOC_TRACE al path del file in cui vogliamo che la mtrace() registri le informazioni sugli accessi di memoria. Ad esempio se voglio registrare le informazioni nel file ./mtrace.out devo usare il comando
bash$ export MALLOC_TRACE="./mtrace.out"
  • eseguire il programma
  • dopo l'esecuzione nel file ./mtrace.out sono registrati gli accessi in formato testuale non facilmente comprensibile. Interpretarlo utilizzando l'utility mtrace, ad esempio:
bash$ mtrace ./myprog ${MALLOC_TRACE} 

questo rispondera' No memory leaks se tutta la memoria e' stata deallocata o fornira' indicazioni su dove e' stata allocata la mamoria rimasta da deallocare.

informatica/sol/laboratorio15/esercitazionia/esercitazione2.1425465428.txt.gz · Ultima modifica: 04/03/2015 alle 10:37 (10 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki