Rim Chaabane. Analyse dynamique de ... - Université Paris 8
Rim Chaabane. Analyse dynamique de ... - Université Paris 8
Rim Chaabane. Analyse dynamique de ... - Université Paris 8
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