CALL e Linkage Subprogrammi
Data corruption: subprogram modified caller's variable because CALL BY REFERENCE was used instead of BY CONTENT – COBOL CALL_BY_REF_CORRUPTION
In COBOL il passaggio parametri predefinito è 'BY REFERENCE'; se il sottoprogramma altera il parametro formale nella LINKAGE SECTION, la variabile del programma chiamante viene sovrascritta a meno di passare 'BY CONTENT'.
Cosa significa questo errore?
In COBOL il passaggio parametri predefinito è 'BY REFERENCE'; se il sottoprogramma altera il parametro formale nella LINKAGE SECTION, la variabile del programma chiamante viene sovrascritta a meno di passare 'BY CONTENT'.
Messaggio originale
Data corruption: subprogram modified caller's variable because CALL BY REFERENCE was used instead of BY CONTENTContesto e parole chiave
Alias
- CALL BY REFERENCE vs BY CONTENT COBOL
Messaggi alternativi
- modifica accidentale variabile chiamante per passaggio BY REFERENCE
Prodotti
- GnuCOBOL (cobc) / IBM Enterprise COBOL / Micro Focus
Piattaforme
- AIX
- IBM z/OS
- Linux
- Windows
Parole chiave
- CALL e Linkage Subprogrammi
- cobol
- cobol.linkage.call-by-reference-vs-by-content-corruption
- errore-cobol-call-by-reference-vs-content-corruption
- file-status
- gnucobol
Cause possibili
Causa tecnica per Errore COBOL: Involontaria Modifica Dati per Chiamata BY REFERENCE (vs BY CONTENT)
In COBOL il passaggio parametri predefinito è 'BY REFERENCE'; se il sottoprogramma altera il parametro formale nella LINKAGE SECTION, la variabile del programma chiamante viene sovrascritta a meno di passare 'BY CONTENT'.
molto comuneDiagnosi
Diagnostica di esecuzione e file status per Errore COBOL: Involontaria Modifica Dati per Chiamata BY REFERENCE (vs BY CONTENT)
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.
cobc -x -Wall -Wextra main.cob -o appRisoluzione
Risoluzione standard per Errore COBOL: Involontaria Modifica Dati per Chiamata BY REFERENCE (vs BY CONTENT)
Applicare la correzione al codice sorgente COBOL secondo le specifiche ANSI/ISO COBOL.
- Ispezionare il valore della variabile FILE STATUS o il numero di riga del compilatore
- Correggere la dichiarazione FD, la PICTURE o la sequenza di OPEN/READ/WRITE
- Ricompilare ed eseguire verificando la corretta terminazione con RETURN-CODE 0
cobc -x main.cobDomande frequenti
Cosa significa Errore COBOL: Involontaria Modifica Dati per Chiamata BY REFERENCE (vs BY CONTENT) in COBOL?
In COBOL il passaggio parametri predefinito è 'BY REFERENCE'; se il sottoprogramma altera il parametro formale nella LINKAGE SECTION, la variabile del programma chiamante viene sovrascritta a meno di passare 'BY CONTENT'.
Approfondimenti
- GnuCOBOL Manual / IBM Enterprise COBOL Documentation documentazione_ufficiale