Program hang: infinite loop in PERFORM VARYING UNTIL condition is never satisfied – COBOL PERFORM_INFINITE_LOOP

PERFORM_INFINITE_LOOP

La condizione di uscita 'UNTIL' non viene mai soddisfatta perché la variabile di incremento non raggiunge il valore di terminazione o viene modificata all'interno del corpo del loop.

Cosa significa questo errore?

La condizione di uscita 'UNTIL' non viene mai soddisfatta perché la variabile di incremento non raggiunge il valore di terminazione o viene modificata all'interno del corpo del loop.

Messaggio originale

Program hang: infinite loop in PERFORM VARYING UNTIL condition is never satisfied

Contesto e parole chiave

Alias

  • PERFORM VARYING infinite loop COBOL

Messaggi alternativi

  • ciclo infinito perform varying condizione until mai soddisfatta

Prodotti

  • GnuCOBOL (cobc) / IBM Enterprise COBOL / Micro Focus

Piattaforme

  • AIX
  • IBM z/OS
  • Linux
  • Windows

Parole chiave

  • cobol
  • cobol.procedure.perform-varying-infinite-loop
  • errore-cobol-perform-varying-infinite-loop
  • file-status
  • gnucobol
  • Procedure Division e Runtime

Cause possibili

Causa tecnica per Errore COBOL: Infinite loop in PERFORM VARYING (Ciclo Infinito in Blocco Perform)

La condizione di uscita 'UNTIL' non viene mai soddisfatta perché la variabile di incremento non raggiunge il valore di terminazione o viene modificata all'interno del corpo del loop.

molto comune

Diagnosi

Diagnostica di esecuzione e file status per Errore COBOL: Infinite loop in PERFORM VARYING (Ciclo Infinito in Blocco Perform)

Ispezionare la variabile FILE-STATUS, i log di runtime o compilare con i controlli di integrità di GnuCOBOL (-Wall -Wextra -fdebugging-line).

Come leggere il risultato. Evidenzia violazioni dei margini di colonna, disallineamenti nelle clausole PIC o codici di ritorno anomali.

terminal
cobc -x -Wall -Wextra main.cob -o app

Risoluzione

Risoluzione standard per Errore COBOL: Infinite loop in PERFORM VARYING (Ciclo Infinito in Blocco Perform)

Difficoltà: mediaRischio: basso

Applicare la correzione al codice sorgente COBOL secondo le specifiche ANSI/ISO COBOL.

  1. Ispezionare il valore della variabile FILE STATUS o il numero di riga del compilatore
  2. Correggere la dichiarazione FD, la PICTURE o la sequenza di OPEN/READ/WRITE
  3. Ricompilare ed eseguire verificando la corretta terminazione con RETURN-CODE 0
terminal
cobc -x main.cob

Domande frequenti

Cosa significa Errore COBOL: Infinite loop in PERFORM VARYING (Ciclo Infinito in Blocco Perform) in COBOL?

La condizione di uscita 'UNTIL' non viene mai soddisfatta perché la variabile di incremento non raggiunge il valore di terminazione o viene modificata all'interno del corpo del loop.

Approfondimenti

Schede correlate