NOTE - L'éditeur de ce débogueur s'appelle arm, auparavant c'était allinea
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 :
- compiler son code avec le switch
-g
et supprimer toutes les options d’optimisation (au minimum, voir autres flags compilateurs). - 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 en mode connect
Lancer ddt depuis la frontale ou une session graphique (visu)
module load arm/19.1 ddt &
Modifier votre script batch:
Ajouter ddt --connect
avant la commande srun
(ou mpiexec.hydra
ou mpirun
) :
module load arm/19.1 ddt --connect srun ...
Démarrage de ddt:
Depuis la fenêtre graphique ddt lancée à l’étape 1, une boite de dialogue va s’ouvrir (attendre quelques secondes).
Configuration:
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.
Nous vous recommandons de positionner le "Heap Debugging" sur Fast, et de préciser à ddt si le programme est en C, C++ ou fortran, multithreadé ou pas.
Vous êtes maintenant prêt à déboguer !!