Pgdbg/fr: Difference between revisions
(Created page with "PGDBG est un outil simple mais puissant pour le débogage d’applications parallèles MPI et OpenMP sous Linux. L’outil fait partie du paquet du compilateur PGI et est conf...") |
No edit summary |
||
(33 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<languages /> | <languages /> | ||
PGDBG est un outil simple mais puissant pour le débogage d’applications parallèles MPI et OpenMP sous Linux. L’outil fait partie du paquet du compilateur PGI et est configuré pour OpenMP avec fils parallèles. | = Description = | ||
PGDBG est un outil simple mais puissant pour le débogage d’applications parallèles MPI et OpenMP sous Linux. L’outil fait partie du paquet du compilateur PGI et est configuré pour OpenMP avec fils parallèles. Il peut être utilisé en mode graphique avec redirection X11 ou en mode ligne de commande. | |||
Un débogueur GNU comme GDB conviendra pour la plupart des programmes C, C++ ou Fortran77. Cependant, GDB ne fonctionne pas très bien avec les programmes Fortran 90/95; c’est pourquoi le Portland Group a développé [https://www.pgroup.com/products/tools.htm/pgdbg.htm pgdbg]. | |||
= | =Guide de démarrage= | ||
Le travail avec PFDBG s’effectue généralement en deux étapes : | |||
#'''compilation''' : le code est compilé (avec l’option <tt>-g</tt> pour obtenir les symboles de débogage); | |||
#'''exécution et débogage''' : le code est exécuté et les résultats sont analysés. | |||
Le débogage peut se faire en mode ligne de commande ou en mode graphique. | |||
== | |||
== Modules d’environnement == | |||
Il faut d’abord charger le [[Utiliser des modules | module]] pour le paquet PGI. Pour connaître les versions disponibles pour les modules du compilateur, de MPI et de CUDA que vous avez chargés, lancez <code>module avail pgi</code>. Pour connaître la liste complète des modules PGI disponibles, lancez <code>module -r spider '.*pgi.*'</code>. En date de décembre 2018, les versions disponibles sont | |||
*pgi/13.10 | |||
* pgi/13.10 | *pgi/17.3 | ||
* pgi/17.3 | Pour charger un module, lancez <code>module load pgi/version</code>; par exemple, pour la version 17.3, la commande est | ||
{{Command|module load pgi/17.3}} | {{Command|module load pgi/17.3}} | ||
== | == Compilation == | ||
Avant d’être débogué, le code doit d’abord être compilé en ajoutant l’indicateur <tt>-g</tt> pour obtenir les renseignements utiles au débogage. | |||
{{Command|pgcc -g program.c -o program}} | {{Command|pgcc -g program.c -o program}} | ||
== | ==Exécution et débogage en mode ligne de commande== | ||
Une fois le code compilé avec les options appropriées, lancez PGDBG pour effectuer l’analyse. Par défaut, l’affichage se fait par l’interface graphique. Si toutefois vous ne voulez pas utiliser cette interface ou que vous n’avez pas la redirection X11, vous pouvez travailler en mode ligne de commande en ajoutant l’option <tt>text</tt> au lancement de PDGDB. | |||
En mode ligne de commande, une invite est affichée. | |||
{{Command | {{Command | ||
|pgdbg -text program | |pgdbg -text program | ||
Line 39: | Line 38: | ||
}} | }} | ||
À l’invite, lancez la commande <tt>run</tt>. | |||
{{Command | {{Command | ||
| | | | ||
Line 45: | Line 44: | ||
pgdbg> run | pgdbg> run | ||
}} | }} | ||
PGDBG | En cours d’exécution du programme, PGDBG s’attache automatiquement aux fils et décrit chacun d’eux au fur et à mesure qu’ils sont créés. En cours de débogage, PGDBG travaille sur un seul fil à la fois, le fil courant. | ||
La commande <tt>thread</tt> sert à sélectionner le fil courant, | |||
la commande <tt>threads</tt> liste les fils utilisés à ce moment par un programme actif. | |||
{{Command|| result= | {{Command|| result= | ||
pgdbg > threads | pgdbg > threads | ||
Line 56: | Line 56: | ||
}} | }} | ||
Par exemple, pour sélectionner ID 2 comme fil courant, la commande <tt>thread</tt> serait | |||
{{Command ||result= | {{Command ||result= | ||
pgdbg > thread 3 | pgdbg > thread 3 | ||
Line 67: | Line 67: | ||
}} | }} | ||
== | ==Exécution et débogage en mode graphique== | ||
L’interface graphique est utilisée par défaut. Si vous avez configuré la redirection X11, PGDBG démarre en mode graphique dans une nouvelle fenêtre. | |||
[[File: | [[File:Pgdbg_gui_schematic_FRN.png|thumbnail|300px|Interface graphique (cliquez pour agrandir)|left ]] | ||
Les éléments de l'interface graphique sont : | |||
* | * barre de menus | ||
* | * barre d'outils | ||
* source | * volet du code source | ||
* | * volet des entrées sorties (I/O) | ||
* | * volet de débogage. | ||
=== | === Barre de menus === | ||
La barre de menus principale affiche ''File'', ''Edit'', ''View'', ''Connections'', ''Debug'' et ''Help''. Il est possible de naviguer avec la souris ou avec les raccourcis-clavier. | |||
=== | === Barre d'outils principale === | ||
La barre d'outils principale contient plusieurs boutons et quatre listes déroulantes. La première liste ''Current Process'', montre le processus en cours, autrement dit, le fil courant. Le libellé change selon que le processus ou le fil est décrit. Quand plusieurs fils sont disponibles, cette liste sert à sélectionner le processus ou le fil qui devrait être courant. | |||
[[File:Pgdbg-toolbar-drop-down-lists.png|thumbnail|300px| | [[File:Pgdbg-toolbar-drop-down-lists.png|thumbnail|300px|Listes déroulantes de la barre d'outils (cliquez pour agrandir)|left ]] | ||
La deuxième liste ''Apply'' détermine le groupe de processus et de fils auxquels les commandes d'action s'appliquent. <br> | |||
La troisième liste ''Display'' détermine le groupe de processus et de fils auxquels les commandes d'affichage de données s'appliquent. | |||
La quatrième liste ''File'' affiche le fichier source qui contient la cible courante. | |||
=== | === Volets du code source et des outils de débogage === | ||
Le volet du code source montre le code pour la session en cours. Ce volet et les onglets du volet de débogage sont des éléments ancrables; en double-cliquant dessus, vous pouvez les détacher de la fenêtre principale. | |||
[[File:Pgdbg-source-win.png|thumbnail|300px| | [[File:Pgdbg-source-win.png|thumbnail|300px|Le panneau montrant le code source offre des outils qui permettent de savoir comment le code est exécuté.(cliquez pour agrandir)|left ]] | ||
=== | === Volet des entrées/sorties du programme === | ||
Les résultats produits par le programme sont affichés dans ce volet. Utilisez le champ ''Input'' pour faire des entrées au programme. | |||
=== | === Volet de débogage === | ||
Situé au bas de la fenêtre, ce volet comporte des onglets qui servent différentes fonctions de débogage et de visualisation de l'information. | |||
= | = Références = | ||
* [https://www.pgroup.com/resources/docs/17.7/x86/pgdbg-user-guide/index.htm PGI Debugger User's Guide] | * [https://www.pgroup.com/resources/docs/17.7/x86/pgdbg-user-guide/index.htm PGI Debugger User's Guide] | ||
* [https://www.pgroup.com/index.htm PGI | * [https://www.pgroup.com/index.htm site web de PGI] |
Latest revision as of 19:34, 1 November 2019
Description
PGDBG est un outil simple mais puissant pour le débogage d’applications parallèles MPI et OpenMP sous Linux. L’outil fait partie du paquet du compilateur PGI et est configuré pour OpenMP avec fils parallèles. Il peut être utilisé en mode graphique avec redirection X11 ou en mode ligne de commande.
Un débogueur GNU comme GDB conviendra pour la plupart des programmes C, C++ ou Fortran77. Cependant, GDB ne fonctionne pas très bien avec les programmes Fortran 90/95; c’est pourquoi le Portland Group a développé pgdbg.
Guide de démarrage
Le travail avec PFDBG s’effectue généralement en deux étapes :
- compilation : le code est compilé (avec l’option -g pour obtenir les symboles de débogage);
- exécution et débogage : le code est exécuté et les résultats sont analysés.
Le débogage peut se faire en mode ligne de commande ou en mode graphique.
Modules d’environnement
Il faut d’abord charger le module pour le paquet PGI. Pour connaître les versions disponibles pour les modules du compilateur, de MPI et de CUDA que vous avez chargés, lancez module avail pgi
. Pour connaître la liste complète des modules PGI disponibles, lancez module -r spider '.*pgi.*'
. En date de décembre 2018, les versions disponibles sont
- pgi/13.10
- pgi/17.3
Pour charger un module, lancez module load pgi/version
; par exemple, pour la version 17.3, la commande est
[name@server ~]$ module load pgi/17.3
Compilation
Avant d’être débogué, le code doit d’abord être compilé en ajoutant l’indicateur -g pour obtenir les renseignements utiles au débogage.
[name@server ~]$ pgcc -g program.c -o program
Exécution et débogage en mode ligne de commande
Une fois le code compilé avec les options appropriées, lancez PGDBG pour effectuer l’analyse. Par défaut, l’affichage se fait par l’interface graphique. Si toutefois vous ne voulez pas utiliser cette interface ou que vous n’avez pas la redirection X11, vous pouvez travailler en mode ligne de commande en ajoutant l’option text au lancement de PDGDB.
En mode ligne de commande, une invite est affichée.
[name@server ~]$ pgdbg -text program
PGDBG 17.3-0 x86-64 (Cluster, 256 Process)
PGI Compilers and Tools
Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
Loaded: /home/user/program
pgdbg>
À l’invite, lancez la commande run.
[name@server ~]$
pgdbg> run
En cours d’exécution du programme, PGDBG s’attache automatiquement aux fils et décrit chacun d’eux au fur et à mesure qu’ils sont créés. En cours de débogage, PGDBG travaille sur un seul fil à la fois, le fil courant. La commande thread sert à sélectionner le fil courant, la commande threads liste les fils utilisés à ce moment par un programme actif.
[name@server ~]$ pgdbg > threads
0 ID PID STATE SIGNAL LOCATION
3 18399 Stopped SIGTRAP main line: 31 in "omp.c" address: 0x80490ab
=> 2 18398 Stopped SIGTRAP main line: 32 in "omp.c" address: 0x80490cf
1 18397 Stopped SIGTRAP main line: 31 in "omp.c" address: 0x80490ab
0 18395 Stopped SIGTRAP f line: 5 in "omp.c" address: 0x8048fa0
Par exemple, pour sélectionner ID 2 comme fil courant, la commande thread serait
[name@server ~]$ pgdbg > thread 3
pgdbg > threads
0 ID PID STATE SIGNAL LOCATION
=> 3 18399 Stopped SIGTRAP main line: 31 in "omp.c" address: 0x80490ab
2 18398 Stopped SIGTRAP main line: 32 in "omp.c" address: 0x80490cf
1 18397 Stopped SIGTRAP main line: 31 in "omp.c" address: 0x80490ab
0 18395 Stopped SIGTRAP f line: 5 in "omp.c" address: 0x8048fa0
Exécution et débogage en mode graphique
L’interface graphique est utilisée par défaut. Si vous avez configuré la redirection X11, PGDBG démarre en mode graphique dans une nouvelle fenêtre.
Les éléments de l'interface graphique sont :
- barre de menus
- barre d'outils
- volet du code source
- volet des entrées sorties (I/O)
- volet de débogage.
La barre de menus principale affiche File, Edit, View, Connections, Debug et Help. Il est possible de naviguer avec la souris ou avec les raccourcis-clavier.
Barre d'outils principale
La barre d'outils principale contient plusieurs boutons et quatre listes déroulantes. La première liste Current Process, montre le processus en cours, autrement dit, le fil courant. Le libellé change selon que le processus ou le fil est décrit. Quand plusieurs fils sont disponibles, cette liste sert à sélectionner le processus ou le fil qui devrait être courant.
La deuxième liste Apply détermine le groupe de processus et de fils auxquels les commandes d'action s'appliquent.
La troisième liste Display détermine le groupe de processus et de fils auxquels les commandes d'affichage de données s'appliquent.
La quatrième liste File affiche le fichier source qui contient la cible courante.
Volets du code source et des outils de débogage
Le volet du code source montre le code pour la session en cours. Ce volet et les onglets du volet de débogage sont des éléments ancrables; en double-cliquant dessus, vous pouvez les détacher de la fenêtre principale.
Volet des entrées/sorties du programme
Les résultats produits par le programme sont affichés dans ce volet. Utilisez le champ Input pour faire des entrées au programme.
Volet de débogage
Situé au bas de la fenêtre, ce volet comporte des onglets qui servent différentes fonctions de débogage et de visualisation de l'information.