Accueil du site > Les articles > Astuce de débogage
Version à imprimer Enregistrer au format PDF

Astuce de débogage

mercredi 11 août 2004, par Grégory Jarrige Visites  3376 Première mise en ligne le lundi 27 octobre 2003.

Quelques astuces de débogage


Visualiser des variables de longueur supérieure à 256

Merci à Valérie Couture, qui après s’être heurtée à un problème avec ISDB, m’a communiqué la solution ci-dessous, trouvée dans un forum :

Comment, dans ISDB, visualiser une variable quand sa longueur dépasse 256 caractères  ? Avec F11, il n’est pas possible de modifier le paramétrage alors que cela est possible avec la commande DSPPGMVAR du débugueur STRDBG. Avec la commande WATCH, il ne semble pas possible de mettre une longueur en paramètre.
La solution réside dans la commande DSP dont la syntaxe est la suivante :

DSP (debut,lng)<nom de zone>

Attention, ne pas mettre d’espace entre ) et nom de zone. Exemple :

DSP (400,15)Zone-lng

Autres astuces

Merci à Laurent Masson pour les astuces décrites ci-dessous :

1. Au niveau des droits. Il est possible d’éxécuter des commandes sous un autre profil (sans avoir son mot de passe). Pour cela, il faut une jobd (description de travail) avec ce profil dans le paramètre utilisateur. Ainsi, il est possible de lancer la commande :
SBMJOB CMD(commande à lancer) JOBD(jobdavecuser) USER(*JOBD)

Des jobd avec utilisateur sont utilisées pour le paramétrage des travaux à démarrage automatique (type de travail ASJ), lors des démarrages de sous-systèmes.

2. Au niveau debug. Pour mettre un debug sur un programme d’un autre travail (batch ou interactif). Il faut utiliser la commande STRSRVJOB JOB(n°job/utilisateur/job)
puis quand on lance une commande STRDBG ou ADDTRC, elles s’appliquent sur le travail indiqué dans le STRSRVJOB.

Avec ce principe, et en utilisant la commande TRCJOB, il est possible de visualiser les objets de QTEMP d’un autre travail :


JOB1   JOB2
WRKQTEMP JOB2
 !_______________________________
   !
  WRKQTEMP2 / WRKQTEMP4


 !
 !
WRKQTEMP3 / WRKQTEMP5

Le programme :
WRKQTEMP
WRKQTEMP4
WRKQTEMP5 sont des CL
WRKQTEMP2
WRKQTEMP3 sont des RPG
il y a aussi une commande et un écran du nom WRKQTEMP.

J’ai fait des tests uniquement par rapport aux interactifs, je n’ai pas essayé avec des batchs. Le principe consiste à démarrer la maintenance du travail éloigné (WRKQTEMP), et à faire une trace avec l’appel d’un programme (WRKQTEMP2). Dès qu’une tâche quelconque est lancée sur le travail (tâche système ou programme applicatif), celle-ci est interrompue et transfère l’appel à notre programme de la trace (entre autre WRKQTEMP2 un RPG). Celui ci va donc nous indiquer la liste des objets de QTEMP. Le programme WRKQTEMP3 permet de visualiser la liste des objets. Pour permettre de communiquer entre les deux travaux, j’utilise des data areas. Rien ne vous empêche d’améliorer le système. C’était juste pour faire un test.

A bientôt

Laurent Masson

N.B. : les sources des programmes fournis par Laurent se trouvent dans le fichier ressources/xpress30.zip (Nom réel : wrkqtemp.zip) que vous pouvez télécharger en cliquant ici. Les fichiers sont au format EBCDIC. Pour pouvoir les étudier et les compiler, vous devez les transférer sur votre AS/400 via FTP.

OPEN adresse_as400 — User — Password

BIN PUT fichier_PC bib/source/membre . . .

(c’est l’instruction BIN qui permet de ne pas faire de conversion EBCDIC en ASCII et inversement).

Documents joints