19.06.2014 Views

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

Rim Chaabane. Analyse dynamique de ... - Université Paris 8

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Analyse</strong> <strong>dynamique</strong> <strong>de</strong> programmes C<br />

5.1.1. Description <strong>de</strong> la procédure d extraction<br />

La figure 18 présente le schéma général <strong>de</strong> la procédure d extraction pour un programme C, ici<br />

« test.c » comme exemple. Pour analyser ce <strong>de</strong>rnier, on l interprète d abord par EiC avec l option<br />

<strong>de</strong> trace modifiée : $./eic t chemin/vers/test.c.<br />

L exécution <strong>de</strong> cette comman<strong>de</strong> génère l affichage <strong>de</strong>s données extraites en sortie standard. Afin<br />

<strong>de</strong> pouvoir exploiter ces informations, le résultat <strong>de</strong> la comman<strong>de</strong> est donc redirigé vers un<br />

fichier qui se nomme « test.data », ce <strong>de</strong>rnier forme alors la base <strong>de</strong> donnée.<br />

Cette base <strong>de</strong> données est utilisée ensuite par un script awk qui va mettre les données sous un<br />

format pouvant être exploité par l outil d affichage <strong>de</strong> graphes Dot [GAN 02]. Les données ainsi<br />

mises en forme seront enregistrées dans un nouveau fichier d extension .dot. Ce fichier contient<br />

donc l ensemble <strong>de</strong>s informations extraites du co<strong>de</strong> source avec les liens les reliant les unes aux<br />

autres pendant l exécution du programme source.<br />

Le fichier « test.dot » est ensuite transformé par le programme Dot en fichier d extension .ps<br />

(« test.ps »), ce qui nous permet <strong>de</strong> le visualiser avec l application GhostView ou encore le<br />

transformer en format PDF, plus facilement exploitable.<br />

Co<strong>de</strong><br />

Source C<br />

« test.c »<br />

Interprétation<br />

par EiC<br />

modifié<br />

$eic t test.c<br />

Base <strong>de</strong><br />

données<br />

« test.data »<br />

Exploitation<br />

par un script<br />

awk<br />

« graph.awk »<br />

Fichier mis en<br />

forme pour<br />

Dot<br />

« test.dot »<br />

GhostView<br />

Fichier<br />

PostScript<br />

« test.ps »<br />

Dot<br />

Figure 18. Schéma d'extraction <strong>dynamique</strong> <strong>de</strong> données<br />

L ensemble <strong>de</strong> ces étapes pour la génération du graphique <strong>de</strong> dépendances <strong>de</strong>s données, est<br />

effectué par un script Shell nommé « eic_adpc.sh » (<strong>Analyse</strong> Dynamique <strong>de</strong> Programmes C basée<br />

sur EiC). L appel à ce script nécessite <strong>de</strong> passer en argument le nom du fichier <strong>de</strong> co<strong>de</strong> source à<br />

analyser. Si un fichier <strong>de</strong> co<strong>de</strong> est passé en argument, il est alors analysé afin <strong>de</strong> vérifier son<br />

extension (.c) et dans le cas où celle-ci est correcte, une <strong>de</strong>rnière vérification est effectuée pour<br />

voir si le fichier existe bien et s il est en droit <strong>de</strong> lecture. Si une <strong>de</strong> ces conditions n est pas vérifiée,<br />

un message d erreur est affiché pour en avertir l utilisateur. Ce script est donné en annexe V.<br />

45

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!