Aller au contenu

CPF1976

La variable &3 du programme fait référence à un objet avec mémoire libérée.

Gravité 30 · Erreur grave

Cause

Dans le programme &1, la variable ou le pointeur de base &3 nécessaire à la localisation de la variable fait référence à un objet non disponible car sa mémoire a été libérée.

Que faire

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

  • Utilisez le paramètre ADR, PGMVAR, PTR ou REFPTR afin d'indiquer, pour la variable, un pointeur de base ne faisant pas référence à l'objet dont la mémoire a été libérée.
  • Exécutez la commande RSTOBJ pour restaurer l'objet à partir d'une version sauvegardée.
  • Modifiez la valeur de pointeur à l'aide de la commande CHGHLLPTR (Modifier un pointeur HLL) ou CHGPTR (Modifier un pointeur) si le pointeur de base faisant référence à l'objet dont la mémoire a été libérée est 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 défini sur un emplacement d'un objet dont le stockage a été libéré.

If no basing pointers were specified on the command, the variable is declared based on a pointer that is set to a location in an object with storage freed.

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(CPF1976) MSGF(QSYS/QCPFMSG)

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

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