Upload
ancel-imbert
View
106
Download
0
Embed Size (px)
Citation preview
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Totalview
Débogueur multiprocess - multithreads
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Qu’est ce que Totalview
Avantages sur les débogueurs classiques UNIX: dbx, gdb, adb
Adaptés sur les principales plates-formes UNIX Accès aux informations faciles grâce à l’interface
utilisateur Adapté à la majorité des modèles de
programmation parallèles multi-threads (OpenMP,Thread) multi-process (MPI,PVM) HPF Fork/exec Shmem
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Les avantages de Totalview
Permet de déboguer un ou plusieurs programmes sur le réseau
Possibilité d’ajouter ou de modifier du code en cours de session de déboguage
Support pour les langages C/C++ et Fortran90 et des appels mixes à ces deux langages
Peut être raccordé à un processus en cours Déboguage des accès et de l’allocation mémoire sur
la nouvelle version 6.3 Difficile problème de la mauvaise désallocation mémoire
… Site: www.etnus.com
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Démarrer Totalview
Environnement : Variable PATH : localisation de l’exécutablesetenv TOTALVIEW_DIR=/usr/local/totalview.5.0setenv PATH $PATH:${TOTALVIEW_DIR}/bin Variable MANPATH
setenv MANPATH $MANPATH: ${TOTALVIEW_DIR}/man Variable LM_LICENSE_FILE : localisation du fichier de
licensesetenv LM_LICENSE_FILE ${TOTALVIEW_DIR}/license.dat Compilation :
-g : le compilateur génère les informations nécessaires au déboguage (table des symboles)
Sans –g: on ne peut visualiser que l’assembleur
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Démarrer Totalview (suite)
Exécuter : Déboguer un exécutable:
totalview puis charger l’exécutable totalview <nom_exécutable> totalview filename –a args totalview filename –remote hostname[:port]
Attacher à un processus en cours Déboguer un fichier « core »
totalview filename corefile
Modifier l’apparence et les actions par défaut totalview filename –bg blue –fg white –fn 9x15
Voir Totalview Users Guide
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Principales fenêtres Totalview
Root Window: donne une vue d’ensemble du programme (process, threads,…)
Process Window: Information sur un process ou un thread Stack Trace Stack frame Source du thread ou du process concerné
Variable Window: fournit l’adresse, le type et la valeur des variables locales, statiques ou globales et permet leur modification
…
Root Window
Attached Page •Machine sur laquelle il tourne• Identificateur du processus• Statut du code• Nom du programme ou du processus• Nom des threads associés
Attached Page : liste des processus qui ne sont pas en cours de déboguage.
Groupe : liste des groupes de processus/threads associés au programme
Log : log des informations de la phase de déboguage
Stack Trace : liste appels …
Stack Frame : variables locales registres paramètres…
Source Pane: source indice des lignes points d’arrêt …
Action Points: point d’arrêt barrière de synchro watchpoint evaluation point …
Threads : threads du process …
5 fenêtres
Process Window
state code description
B stop at breakpoint
E stop because of an error
H in a hold state
I idle
K thread is executing within the kernel
M some thread are running and some not
R running
S sleeping
T thread is stopped
W at a watchpoint
Z process in « zombie » state
Variable Window
À la demande de visualisation d’une variable
Édite les informations sur une variable• visualisation• modification
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Usage de la souris
Bouton Action Description
gauche sélection simple click: sélectionnedouble click: dive in
milieu paste Écrit une information préalablement copiée
droit contexte Édite de menu associé à l’objet sélectionné
2 types de menus: • Pull-down menu :
• menus en entête de fenêtre•Activé en clickant sur le bouton gauche d’un objet
• Pop-up menu : activé en clickant sur un objet avec le bouton droit
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Totalview : Fonctions de base
Visualisation du source et du code assembleur Visualisation du source d’une fonction Mise en place de point d’arrêt Contrôle de l’exécution
Démarrer et arrêter l’exécution Exécuter la prochaine instruction ou jusqu’un point d’arrêt
Visualiser un objet (pointeur, variable, tableau…) Visualiser et modifier une variable (variable, tableau…) Utiliser un éditeur de texte Sauvegarder le contenu d’une fenêtre Consulter l’aide en ligne
Process Window > View Menu > …
Visualisation du source D’une fonction
Source et code assembleur
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Point d’arrêt
Plusieurs méthodes – la plus simple Cliquer sur la ligne du code source avec le
bouton gauche de la souris Visualiser les points d’arrêt Options associées à un point d’arrêt
(programme parallèle)
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Contrôle de l’exécution d’un programme
commande description
Go Démarre l’exécution
Halt Suspend l’exécution
Next Exécute la prochaine instructionUne fonction est une instruction
Step Exécute la prochaine instruction
Out Exécute le reste d’une fonction
Run to Exécute jusqu’à la ligne indiquée
Hold/release Suspend l’exécution d’un thread ou d’un processus
Restart Redémarre un processus
Visualiser les informations concernant un objet
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Visualiser et modifier une donnée
Visualiser Variable:
Process Window> View Menu > lookup variable Registre : Process Window – Stack Frame Pane Adresse mémoire Instruction machine
Modifier Ouvrir la fenêtre associée
Visualiser le contenu et l’adresse de variables
Modifier une variable
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Programme Multi-process
Groupe de process ou groupe de threads Une fenêtre pour chaque process Partage des points d’arrêt entre plusieurs
process Barrière de synchronisation Pas à pas sur un groupe de process ou un
groupe de threads Table de symboles multiple …
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Programme Multi-threads
Partage l’espace d’adressage Chaque thread a son propre contexte
d’exécution(flooting point registers,…) Permet à un thread d’avoir des données
privées Chaque thread a un espace propre pour la
stack
La méthode d’implémentation des threads différent sur les OS, Totalview implémente un modèle général d’adressage et de contexte d’exécution
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Action en cours d’exécution
On peut positionner, détruire, activer, désactiver des actions sur des lignes de codes
Point d’arrêt Barrière de synchronisationsur un group de
threads ou de process Point d’arrêt conditionnel Ajout d’instructions par du code Watchpoints
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry
Références
« Home page » de Totalviewhttp://www.etnus.com/Products/Totalview/index.html
Tutoriaux, Quick_Reference et User-Guide
http://www.etnus.com/Support/docs/http://www.llnl.gov/computing/tutorials/workshops/totalview/Main.htmlhttp://www.llnl.gov/icc/lc/DEGTV-QRC.html
Tips-of-the–Week
http://www.etnus.com/Support/Tips/index.html Nouveautés
http://www.llnl.gov/icc/DEG/TV.html