Aller au contenu

CPF1988

Erreur d'adressage d'espace pour variable &3.

Gravité 30 · Erreur grave

Cause

La variable &3 du programme &1, ou un pointeur de base nécessaire à la localisation de la variable &3, fait référence à un emplacement qui n'existe pas dans l'espace.

Que faire

Effectuez l'une des opérations suivantes, puis relancez la commande :

  • Indiquez, pour la variable, un pointeur de base désignant un emplacement dans l'espace, au paramètre ADR, PGMVAR, PTR ou REFPTR.
  • Vérifiez que tous les pointeurs de base associés à la variable sont correctement positionnés et que l'espace disponible dans l'objet est suffisant pour l'opération à effectuer. Vous pouvez utiliser la commande DSPPGMVAR (Afficher une variable de programme) pour afficher une valeur de pointeur et la commande CHGHLLPTR (Modifier un pointeur HLL) ou CHGPTR (Modifier un pointeur) pour modifier une variable de pointeur pour un objet de données.

Description technique

Si aucun pointeur de base n'a été indiqué dans la commande, la variable est déclarée basée sur un pointeur à l'origine de l'erreur. Une variable basée sur un pointeur peut faire référence à un emplacement situé en dehors de l'espace, même si le pointeur est défini sur un emplacement situé à l'intérieur de l'espace.

If no basing pointers were specified on the command, the variable is declared based on some pointer that caused the error. A variable that is based on a pointer may refer to a location that is outside the space even if the pointer is set to a location inside the space.

Variables du message

Quand le système envoie le message, chaque variable est remplacée par une valeur réelle : un nom d'objet, de bibliothèque, un code...

VariableTypeLongueur
&1 *CHAR 10
&3 *CHAR variable

Sur votre IBM i

Afficher la description complète du message :

DSPMSGD RANGE(CPF1988) MSGF(QSYS/QCPFMSG)

L'intercepter dans un programme CL, quand il est envoyé comme message d'échappement :

MONMSG MSGID(CPF1988) EXEC(DO)
  /* traitement de l'erreur */
ENDDO