23
17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

Embed Size (px)

Citation preview

Page 1: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Totalview

Débogueur multiprocess - multithreads

Page 2: 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

Page 3: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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

Page 4: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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

Page 5: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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

Page 6: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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

Page 7: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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

Page 8: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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

Page 9: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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

Page 10: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

Variable Window

À la demande de visualisation d’une variable

Édite les informations sur une variable• visualisation• modification

Page 11: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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

Page 12: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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

Page 13: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

Process Window > View Menu > …

Visualisation du source D’une fonction

Source et code assembleur

Page 14: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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)

Page 15: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads
Page 16: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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

Page 17: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

Visualiser les informations concernant un objet

Page 18: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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

Page 19: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

Visualiser le contenu et l’adresse de variables

Modifier une variable

Page 20: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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 …

Page 21: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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

Page 22: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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

Page 23: 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry Totalview Débogueur multiprocess - multithreads

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