Outils pour utilisateurs

Outils du site


perl:le_debugger

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
perl:le_debugger [2009/03/15 01:00] rootperl:le_debugger [2013/03/13 11:06] (Version actuelle) root
Ligne 1: Ligne 1:
 +====== Le debugger ======
 +
 ====== 1. Présentation ====== ====== 1. Présentation ======
  
Ligne 6: Ligne 8:
  
 Nous avons vu qu'il était facile d'utiliser la console et quelques //print// bien placés pour obtenir des traces simples et facile à lire, par ex : Nous avons vu qu'il était facile d'utiliser la console et quelques //print// bien placés pour obtenir des traces simples et facile à lire, par ex :
 +<code perl>
   print "Liste 'bla': ".join(' - ', @bla)."\n";   print "Liste 'bla': ".join(' - ', @bla)."\n";
   print "$_ => $tab{$_]\n" foreach keys %tab;   print "$_ => $tab{$_]\n" foreach keys %tab;
 +</code>
  
 Mais ces affichages sont limités, rébarbatifs pour les tableaux, et surtout ne peuvent pas rendre compte facilement de structures imbriquées basées sur les références. On peut alors appeler à la rescousse un module **standard** très pratique : Mais ces affichages sont limités, rébarbatifs pour les tableaux, et surtout ne peuvent pas rendre compte facilement de structures imbriquées basées sur les références. On peut alors appeler à la rescousse un module **standard** très pratique :
 +<code perl>
   use Data::Dumper;   use Data::Dumper;
      
   print Dumper(\@list, \%tab);   print Dumper(\@list, \%tab);
 +</code>
  
 Ceci affichant par exemple : Ceci affichant par exemple :
Ligne 27: Ligne 33:
  
 Notez l'utilisation des références sur des listes ou des tableaux lors de l'appel à //Dumper// : sans passage par référence, les structures sont //mises à plat// sous forme de liste et //Dumper// ne peut que les considérer comme des variables distinctes à afficher. Ainsi avec //print Dumper(@list)// on obtiendrai : Notez l'utilisation des références sur des listes ou des tableaux lors de l'appel à //Dumper// : sans passage par référence, les structures sont //mises à plat// sous forme de liste et //Dumper// ne peut que les considérer comme des variables distinctes à afficher. Ainsi avec //print Dumper(@list)// on obtiendrai :
 +<code perl>
   $VAR1 = 'lundi';   $VAR1 = 'lundi';
   $VAR2 = 'mardi';   $VAR2 = 'mardi';
   $VAR3 = 'mercredi';   $VAR3 = 'mercredi';
 +</code>
  
 Il reste que ces méthodes d'introspection sont limitées et demandent des modifications fréquentes du code à analyser. Il reste que ces méthodes d'introspection sont limitées et demandent des modifications fréquentes du code à analyser.
- 
  
 ====== 2. Utilisation ====== ====== 2. Utilisation ======
Ligne 133: Ligne 140:
  
 ^ **Commande** ^ **Nom** ^ **Action** ^ ^ **Commande** ^ **Nom** ^ **Action** ^
-| **w** variable|expression | //watch// | pose une sonde: arrête le programme si la variable est modifiée ou l'expression est vérifiée |+| **w** | //watch// | pose une sonde: arrête le programme si la variable est modifiée ou l'expression est vérifiée |
 | **W** ... | //delete watch// | supprime une sonde | | **W** ... | //delete watch// | supprime une sonde |
  
Ligne 170: Ligne 177:
   0.11 0.007 6.436 870 0.0000 0.0074 SDL::Surface::blit   0.11 0.007 6.436 870 0.0000 0.0074 SDL::Surface::blit
   0.08 0.005 6.544 435 0.0000 0.0150 main::win_update   0.08 0.005 6.544 435 0.0000 0.0150 main::win_update
- 
perl/le_debugger.1237078840.txt.gz · Dernière modification : 2009/03/15 01:00 de root