Pgdbg/fr: Difference between revisions
(Created page with "= 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/index.htm site web de PGI]") |
No edit summary |
||
Line 1: | Line 1: | ||
<languages /> | <languages /> | ||
= Description = | = 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é | 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]. | 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]. |
Revision as of 16:37, 21 July 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.
As the illustration shows, the GUI is divided into several areas:
- menu bar
- main toolbar
- source window
- program I/O window
- and debug information tabs.
Menu bar
The main menu bar contains these menus: File, Edit, View, Connections, Debug and Help. This section describes these menus and their contents. You can navigate the menus using the mouse or the system’s mouseless modifier.
Main toolbar
The debugger's main toolbar contains several buttons and four drop-down lists. The first drop-down list displays the current process or in other words, the current thread. The list’s label changes depending on whether processes or threads are described. When multiple threads are available use this drop-down list to specify which process or thread should be the current one.
The second drop-down list is labeled Apply. The selection in the Apply drop-down determines the set of processes and threads to which action commands are applied. The third drop-down list is labeled Display. The selection in the Display drop-down determines the set of processes and threads to which data display commands are applied.
The fourth drop-down list, labeled as File, displays the source file that contains the current target location.
Source window
The source window (shown on the figure below) and all of the debug information tabs are dockable tabs, meaning that they can be taken apart from the main window. This can be done by double-clicking the tab. The source window shows the source code for the current session.
Program I/O Window
Program output is displayed in the Program IO tab’s central window. Program input is entered into this tab’s Input field.
Debug information tab
Debug information tabs take up the lower half of the debugger GUI. Each of these tabs provides a particular function or view of debug information. The following sections discuss the tabs as they appear from left-to-right in the GUI’s default configuration.