Débogueur ddt (arm, auparavant allinea)
Article mis en ligne le 13 juin 2019
dernière modification le 3 février 2020

Pré-requis : pour comprendre cette page il faut avoir déjà débogué un code et savoir utiliser le gestionnaire de batch slurm.

ddt permet de déboguer des codes fortran, C, C++, et ce quelque soit le compilateur utilisé (intel, gnu ou pgi)
Il s’agit d’un outil graphique, vous devrez donc ouvrir une session X11 :

  • Vous connecter avec ssh -X
  • Si le débit réseau est insuffisant, ssh -XC permet d’améliorer la fluidité de l’affichage
  • Si cela ne suffit pas, utilisez une session graphique

Pour déboguer votre code, vous devez travailler en deux temps :

  1. compiler son code avec le switch -g et supprimer toutes les options d’optimisation (au minimum, voir autres flags compilateurs).
  2. lancer l’outil ddt :

Nous préconisons d’utiliser le mode ’connect’, très simple d’utilisation, et qui permet de faire tourner le code sur les nœuds tout en lançant l’interface graphique sur la frontale :

Déboguer son code avec ddt

  1. Lancer ddt depuis la frontale ou une session graphique (visu)
  2. modifier votre script batch en ajoutant ddt --connect avant la commande srun (ou mpiexec.hydra ou mpirun) :
  3. depuis la fenêtre graphique ddt lancée à l’étape 1, une boite de dialogue va s’ouvrir (attendre quelques secondes). PNG
  4. Une nouvelle fenêtre vous demandant de préciser les caractéristiques de votre code s’ouvre alors. Vous voudrez probablement déboguer la mémoire : dans ce cas cochez la case et pressez sur le bouton indiqué ci-dessous.
  5. Nos vous recommendons de positionner le "Heap Debugging" sur Fast, et de préciser à ddt si le programme est en C,/fortran ou C++, multithreadé ou pas.PNG
  6. Vous êtes maintenant prêt à déboguer !!