Aller au contenu

STRDBG

Démarrer le débogage

En bref

La commande STRDBG (Démarrer le débogage) permet de placer un travail et éventuellement jusqu'à 20 programmes, 20 programmes de service et 20 fichiers de classe en mode débogage et de définir certains attributs pour la session de débogage.

STRDBG se lit STR (Démarrer) + DBG. Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.

Syntaxe minimale

STRDBG

Paramètres

Astuce : dans une session 5250, tapez STRDBG puis F4 pour l'invite de saisie, et F1 sur un paramètre pour son aide.

Aide IBM i de la commande

Texte du F1, IBM i 7.5 en français (bibliothèque QSYS)

Où s'exécute : Tous les environnements (*ALL)
Compatible multitâche : Non

La commande STRDBG (Démarrer le débogage) permet de placer un travail et éventuellement jusqu'à 20 programmes, 20 programmes de service et 20 fichiers de classe en mode débogage et de définir certains attributs pour la session de débogage. Elle permet par exemple de préciser si les fichiers base de données des bibliothèques de production peuvent être mis à jour en mode débogage.

Le débogueur système graphique sera lancé à la place du débogueur système traditionnel si la commande STRDBG est exécutée par un utilisateur enregistré pour le débogage graphique.

Le débogage peut s'effectuer dans trois environnements à la fois. Il s'agit des environnements OPM, ILE et JAVA. Certains paramètres de cette commande s'appliquent aux trois environnements, d'autres ne s'appliquent qu'à OPM, à ILE ou à JAVA. Une instruction figurant dans chaque description de paramètre décrit l'environnement auquel le paramètre s'applique.

La commande CHGDBG (Modifier le débogage) peut être utilisée ultérieurement dans le travail pour modifier les attributs du mode de débogage. En outre, les programmes OPM peuvent être ajoutés à la session de débogage, ou supprimés de cette session, s'ils sont spécifiés avec les commandes ADDPGM (Ajouter programme au débogage) ou RMVPGM (Enlever programme du débogage). Les programmes OPM ajoutés avec la commande ADDPGM seront dans l'environnement de débogage OPM.

Lorsqu'un travail exécute la maintenance d'un autre travail, et que STRDBG est indiqué, toutes les commandes de débogage sont correctes pour le travail en cours de maintenance. Si ce travail est mis en file d'attente, aucune commande ultérieure ne pourra être tapée tant que l'exécution de celui-ci ne sera pas autorisée. Si ce travail est suspendu dans une file d'attente, aucune nouvelle commande de débogage ne peut être entrée jusqu'au démarrage de ce dernier. Pour faire la maintenance d'un autre travail, utilisez la commande STRSRVJOB (Démarrer maintenance travail). Pour plus de détails sur le débogage d'un travail à partir d'un autre, reportez-vous au manuel Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Restrictions :

  • Vous ne pouvez pas utiliser cette commande en mode débogage. Pour arrêter le mode débogage, utilisez la commande ENDDBG.
  • Vous ne pouvez pas utiliser cette commande si vous faites la maintenance d'un autre travail et si celui-ci est suspendu, interrompu ou en cours d'arrêt.
  • Cette commande est fournie avec le droit public *EXCLUDE et les profils utilisateur QPGMR, QSRV et QSRVBAS disposent des droits privés permettant de l'utiliser.
  • Vous devez disposer soit du droit *CHANGE, soit du droit *USE sur le programme et du droit spécial *SERVICE.

Paramètres

Mot-clé Description Valeurs possibles Remarques
PGM Programme Valeurs uniques: *NONE
Autres valeurs (jusqu'à 20 répétitions): Nom d'objet qualifié
Facultatif, positionnel 1
Qualificatif 1: Programme Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
DFTPGM Programme par défaut Nom, *PGM, *NONE Facultatif
MAXTRC Nb maxi d'instructions trace Entier, 200 Facultatif
TRCFULL Trace pleine *STOPTRC, *WRAP Facultatif
UPDPROD MàJ fichiers de production *NO, *YES Facultatif
OPMSRC Débogage de niveau source OPM *NO, *YES Facultatif
SRVPGM Programme de service Valeurs uniques: *NONE
Autres valeurs (jusqu'à 20 répétitions): Nom d'objet qualifié
Facultatif
Qualificatif 1: Programme de service Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
CLASS Fichier de classe Values (jusqu'à 20 répétitions): Chemin d'accès, *NONE Facultatif
DSPMODSRC Afficher source module *PGMDEP, *NO, *YES Facultatif
SRCDBGPGM Programme de débogage source Valeurs uniques: *SYSDFT
Autres valeurs: Nom d'objet qualifié
Facultatif
Qualificatif 1: Programme de débogage source Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
UNMONPGM Pgm pour msg non intercepté Valeurs uniques: *NONE
Autres valeurs: Nom d'objet qualifié
Facultatif
Qualificatif 1: Pgm pour msg non intercepté Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
DBGENCKEY Clé de déchiffrement Valeur caractère, *NONE Facultatif

Programme (PGM)

Indique jusqu'à 20 programmes à déboguer dans ce travail. Pour qu'un programme puisse être débogué, son nom doit être spécifié à ce paramètre, dans la commande ADDPGM (Ajouter programme au débogage) ou DSPMODSRC (Afficher source module).

Ce paramètre s'applique aux environnements OPM et ILE.

Valeurs uniques

*NONE
Aucun nom de programme n'a été spécifié au démarrage de la session de débogage. La commande ADDPGM (Ajouter un programme au débogage) ou DSPMODSRC (Afficher source module) permettent d'ajouter des programmes ultérieurement.

Autres valeurs (jusqu'à 20 répétitions)

Qualificatif 1 : Programme

nom
Indiquez le nom du programme à déboguer. Il n'est pas possible de déboguer simultanément deux programmes ayant le même nom dans l'environnement de débogage OPM. Dans l'environnement de débogage ILE, deux programmes ayant le même nom peuvent être débogués s'ils se trouvent dans des bibliothèques différentes.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
Le programme est recherché dans la bibliothèque en cours du travail. Si celle-ci n'est pas précisée, QGPL est prise par défaut.
nom
Indiquez le nom de la bibliothèque contenant le programme.

Programme par défaut (DFTPGM)

Indique le nom du programme OPM (Original Program Model) à utiliser comme programme par défaut en mode de débogage. Le programme indiqué ici est utilisé comme programme par défaut pour n'importe quelle autre commande de débogage pour laquelle l'utilisateur a spécifié la valeur *DFTPGM au paramètre Programme ( PGM). Ainsi, si un programme par défaut a précédemment été spécifié, ce paramètre peut le modifier.

Ce paramètre ne s'applique qu'à l'environnement OPM.

*PGM
Le programme indiqué dans le paramètre PGM de cette commande constitue le programme par défaut pour la session de débogage du travail. Si plusieurs programmes ont été indiqués dans le paramètre PGM, le premier programme OPM de la liste ajouté à l'environnement de débogage OPM est le programme par défaut. Si *NONE est indiqué dans le paramètre PGM, ou constitue la valeur par défaut, *NONE est également implicite lorsque cette valeur (*PGM) est indiquée.
*NONE
Aucun programme n'est défini comme programme par défaut ; si un programme a été précédemment spécifié comme programme par défaut, il n'est plus pris en compte. En l'absence de programme par défaut pour un travail, *DFTPGM ne peut être entré dans le paramètre PGM d'aucune autre commande de débogage.
nom
Entrez le nom du programme qui doit être pris par défaut en mode débogage. Ce nom (sous forme qualifiée) doit également être indiqué pour le paramètre PGM de cette commande. Vous ne pouvez pas indiquer de programme lié pour ce paramètre.

Remarque :Si OPMSRC(*YES) est spécifié, le programme OPM peut être ajouté à l'environnement de débogage OPM ou à l'environnement de débogage ILE. S'il est ajouté à l'environnement de débogage ILE, il ne peut pas constituer un programme par défaut pour l'environnement de débogage OPM.

Nb maxi d'instructions trace (MAXTRC)

Indique le nombre maximum d'instructions de trace que le système place dans le fichier trace du travail avant d'arrêter la trace ou de reprendre le traitement du fichier trace (bouclage). Lorsque le fichier trace contient le nombre maximal d'instructions, le système effectue les actions définies par la valeur entrée au paramètre Trace pleine ( TRCFULL).

Remarque :Pour traiter pas à pas les instructions d'un programme dans le cadre d'un débogage interactif, il convient de fixer le nombre maximal d'instructions de trace à 1 et d'indiquer *STOPTRC pour le paramètre TRCFULL.

Ce paramètre ne s'applique qu'à l'environnement OPM.

200
200 instructions de trace peuvent être placées dans le fichier avant l'arrêt ou le bouclage de la trace.
entier
Indiquez le nombre maximal d'instructions tracées que peut contenir le fichier trace.

Trace pleine (TRCFULL)

Indique ce qui se produit lorsque le fichier trace du travail est plein, c'est-à-dire lorsqu'il contient le nombre maximal d'instructions de trace défini au paramètre Nb maxi d'instructions trace ( MAXTRC).

Ce paramètre ne s'applique qu'à l'environnement OPM.

*STOPTRC
Dans le cadre d'un traitement par lots, la fonction trace s'arrête mais le programme poursuit le traitement. En mode interactif, le contrôle est donné à l'utilisateur dès qu'un point d'arrêt est atteint. Si l'utilisateur décide de continuer le traitement, un point d'arrêt est observé avant le traitement de chaque instruction suivante dans la plage de trace et la taille du fichier trace est augmentée pour recevoir la nouvelle donnée.
*WRAP
Le contenu du fichier trace est remplacé au fur et à mesure par les nouvelles instructions de trace, ce qui entraîne le bouclage du fichier. Le programme poursuit le traitement sans qu'aucun message ne signale qu'un bouclage a eu lieu. Ainsi, le fichier trace ne contient jamais plus du nombre maximal d'instructions et il s'agit toujours des dernières instructions enregistrées.

MàJ fichiers de production (UPDPROD)

Indique si les fichiers base de données d'une bibliothèque de production peuvent être ouverts pour mettre à jour ou ajouter des enregistrements, pendant que le travail est en mode débogage. Dans la négative, les fichiers doivent être copiés dans une bibliothèque de test avant d'exécuter un programme faisant intervenir ces fichiers.

Ce paramètre s'applique aux environnements OPM et ILE.

*NO
Les fichiers base de données des bibliothèques de production ne peuvent être mis à jour tant que le travail est en mode débogage. Ainsi, les fichiers base de données sont protégés contre des mises à jour intempestives pendant le débogage d'un programme. Ils peuvent tout de même être ouverts, mais pour lecture uniquement. Cependant, si une bibliothèque de production était ouverte au moment où le débogage a commencé, cette protection n'est pas assurée. Si cette valeur est spécifiée, certaines commandes, pouvant inclure des touches de fonction, des options de menu ou des menus déroulants, peuvent ne pas fonctionner correctement.
*YES
Les fichiers base de données des bibliothèques de production peuvent faire l'objet d'une mise à jour alors que le travail est en mode débogage.

Débogage de niveau source OPM (OPMSRC)

Indique que les programmes OPM (Original Program Model) sont débogués à l'aide du support de débogage source du système (identique au débogage source ILE).

Ce paramètre est valable pour les programmes OPM CL, OPM RPG et OPM COBOL créés avec OPTION(*SRCDBG) et les commandes CRTCLPGM, CRTRPGPGM et CRTCBLPGM. En outre, ce paramètre est valable pour les programmes OPM CL, OPM RPG et OPM COBOL créés avec OPTION(*LSTDBG) et les commandes CRTCLPGM, CRTRPGPGM, CRTCBLPGM CRTSQLRPG, CRTSQLCBL et CRTRPTRPG . Si le programme OPM n'est pas de type CL, RPG ou COBOL et n'a pas été compilé avec une option de débogage admise, ce paramètre est ignoré.

Ce paramètre s'applique aux environnements OPM et ILE.

Les fonctions ILE vont désormais fonctionner sur les programmes OPM, par exemple, pour le débogage de niveau source.

*NO
Les fonctions de débogage OPM sont utilisées pour les programmes OPM.
*YES
Les fonctions de débogage ILE sont utilisées pour les programmes OPM.

Programme de service (SRVPGM)

Indique jusqu'à 20 programmes de service à déboguer dans ce travail. Pour qu'un programme de service puisse être débogué, son nom doit être spécifié à ce paramètre ou dans la commande DSPMODSRC (Afficher le source d'un module).

Ce paramètre ne s'applique qu'à l'environnement ILE.

Valeurs uniques

*NONE
Aucun nom de programme de service n'est indiqué au démarrage de la session de débogage. La commande DSPMODSRC (Afficher le source d'un module) peut être utilisée pour ajouter ultérieurement des programmes de service.

Autres valeurs (jusqu'à 20 répétitions)

Qualificatif 1 : Programme de service

nom
Indiquez le nom du programme de service à déboguer.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
Le programme de service est recherché dans la bibliothèque en cours pour le travail. Si celle-ci n'est pas précisée, QGPL est prise par défaut.
nom
Indiquez la bibliothèque dans laquelle se trouve le programme de service.

Fichier de classe (CLASS)

Indique jusqu'à 20 fichiers de classe à déboguer pour le travail. Pour qu'un fichier de classe puisse être débogué, son nom doit être indiqué dans ce paramètre ou dans la commande DSPMODSRC (Afficher le source d'un module) .

Ce paramètre ne s'applique qu'à l'environnement ILE.

*NONE
Aucun fichier de classe n'est indiqué au démarrage de la session de débogage. La commande DSPMODSRC (Afficher le source d'un module) peut être utilisée pour ajouter ultérieurement des fichiers de classe.
nom-chemin
Indiquez les noms de chemin des fichiers de classe à déboguer.

Afficher source module (DSPMODSRC)

Indique si l'écran initial du programme de débogage de source s'affiche lorsque cette commande est exécutée normalement.

Ce paramètre ne s'applique qu'à l'environnement ILE.

*PGMDEP
L'affichage de l'écran du programme de débogage de source dépend des programmes indiqués au paramètre Programme (PGM). Si l'un des programmes est un programme ILE, l'écran s'affiche. Si l'un des programmes est un programme OPM avec données de débogage de source et que OPMSRC(*YES) est spécifié, l'écran s'affiche également. Si tous les programmes sont des programmes OPM et que OPMSRC(*NO) est spécifié, l'écran ne s'affiche pas.
*NO
L'écran initial du programme de débogage de source ne s'affiche pas.
*YES
L'écran initial du programme de débogage de source s'affiche.

Programme de débogage source (SRCDBGPGM)

Indique le programme de débogage de source à utiliser. Pour en savoir plus sur ce paramètre, reportez-vous au manuel Ensemble de rubriques API de la catégorie Programmation de l'IBM i Information Center (http://www.ibm.com/systems/i/infocenter/).

Ce paramètre ne s'applique qu'à l'environnement ILE.

Valeurs uniques

*SYSDFT
Le programme de débogage de source du système est utilisé.

Qualificatif 1 : Programme de débogage source

nom
Indiquez le nom du programme qui sera utilisé pour le débogage des programmes.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
La recherche porte sur la bibliothèque en cours du travail. Si celle-ci n'est pas précisée, QGPL est utilisée par défaut.
nom
Indiquez le nom de la bibliothèque sur laquelle doit porter la recherche.

Pgm pour msg non intercepté (UNMONPGM)

Indique le nom qualifié du programme utilisateur appelé lorsqu'un message non intercepté survient pour le travail en cours de débogage. Lorsque le programme indiqué est appelé, il reçoit des paramètres définissant le nom du programme, le niveau de récursivité, l'identificateur d'instruction en langage évolué, le numéro d'instruction machine où le point d'arrêt s'est produit, le message non intercepté, les données du message, le longueur du message et la clé de référence du message.

Ce paramètre ne s'applique qu'à l'environnement OPM.

Les paramètres transmis ont les formats ci-après.

  1. Nom de programme (10 octets). Indique le nom du programme dans lequel le point d'arrêt a été atteint.
  2. Niveau de récursivité (5 octets). Indique le niveau de récursivité du programme dans lequel le point d'arrêt a été atteint. Il s'agit d'un nombre de 1 à 5 chiffres complétés par des blancs à droite.
  3. Identificateur d'instruction (10 octets). Indique l'identificateur d'instruction en langage évolué qui a été trouvé. Il s'agit de l'identificateur d'instruction indiqué dans la commande ADDBKP (Ajouter un point d'arrêt). Si un numéro d'instruction machine est utilisé pour indiquer le point d'arrêt, ce paramètre contient une barre oblique (/) suivie d'une valeur hexadécimale à 4 chiffres correspondant au numéro d'instruction machine.
  4. Numéro d'instruction (5 octets). Indique le numéro d'instruction machine correspondant à l'instruction en langage évolué constituant un point d'arrêt. Ce numéro d'instruction machine n'est précédé d'aucune barre oblique. Il est composé de 4 caractères hexadécimaux représentant le numéro d'instruction machine, suivis d'un ou plusieurs blancs. Si un numéro d'instruction machine est transmis au troisième paramètre, les valeurs des troisième et quatrième paramètres sont identiques.
  5. ID message (7 octets). Indique l'ID du message non intercepté.
  6. Données de message (256 octets). Indique les 256 premiers octets des données envoyées avec le message non intercepté.
  7. Longueur des données de message (5 octets). Indique la longueur des données de message envoyées avec le message non intercepté.
  8. Clé de référence du message (4 octets). Indique la clé de référence du message non intercepté.

Toutes les valeurs de paramètres sont alignées à gauche et complétées par des blancs à droite. Lorsque le programme contenant le message non intercepté reprend le contrôle, le traitement se poursuit.

Valeurs uniques

*NONE
Aucun programme n'est appelé lorsqu'un message non intercepté survient.

Qualificatif 1 : Pgm pour msg non intercepté

nom
Indiquez le nom du programme utilisateur appelé lorsqu'un message non intercepté survient pour le travail en cours de débogage. Une fois le programme exécuté, le programme interrompu reprend le contrôle.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
La recherche porte sur la bibliothèque en cours du travail. Si celle-ci n'est pas précisée, QGPL est utilisée par défaut.
nom
Indiquez le nom de la bibliothèque sur laquelle doit porter la recherche.

Clé de déchiffrement (DBGENCKEY)

Indiquez la clé qui a été définie en tant que clé de chiffrement lors de la compilation du programme. Toute valeur de clé de moins de 16 octets sera complétée avec des blancs (X'40') jusqu'à concurrence de 16 octets.

Si la clé contient des caractères qui ne sont pas constants pour toutes les pages de code, veillez à ce que le CCSID du travail soit le même que celui utilisé lors de la compilation du programme ; si tel n'est pas le cas, la clé pourra ne pas correspondre et le déchiffrement échouera.

Valeurs uniques

*NONE
Aucune clé de déchiffrement n'est indiquée au démarrage de la session de débogage. Cette clé peut être spécifiée ultérieurement à partir du panneau d'entrée des clés de déchiffrement.

Autres valeurs

Qualificatif 1 : Clé de déchiffrement

clé
Indique la clé de 16 octets à utiliser pour le déchiffrement des vues de texte de débogage chiffré. Toute valeur de clé de moins de 16 octets sera complétée avec des blancs (X'40') jusqu'à concurrence de 16 octets.

Exemples

Exemple 1 : démarrage du débogage du programme

STRDBG   PGM(TESTLIB/PAYROLL)  UPDPROD(*NO)

Cette commande permet de démarrer le mode débogage afin de déboguer le programme PAYROLL, situé dans la bibliothèque de test TESTLIB. Si vous utilisez la méthode de traçage, jusqu'à 200 instructions de trace peuvent être stockées dans la trace avant son arrêt. Si le programme PAYROLL est un programme lié, l'écran Afficher la source d'un module s'affiche, et donne la source du module contenant le point d'entrée du programme. Tout fichier de base de données mis à jour par le programme PAYROLL doit se trouver dans une bibliothèque de test.

Exemple 2 : démarrage du débogage pour les fichiers de classe

STRDBG   CLASS('financial.payapplet')

Cette commande permet de démarrer le mode débogage afin de déboguer la classe payapplet située dans le module financial.

Messages d'erreur

Messages *ESCAPE

CPF1999
Erreurs dans la commande.

© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.