CALL e Linkage Subprogrammi
Runtime crash: CALL convention mismatch (STDCALL vs CDECL stack corruption) – COBOL CALL_CONVENTION_MISMATCH
Interfacciando COBOL con librerie scritte in C su piattaforme Windows o Linux a 32/64 bit, un disallineamento tra convenzione STDCALL e CDECL corrompe il registro dello stack pointer (ESP/RSP) provocando crash istantaneo.
Cosa significa questo errore?
Interfacciando COBOL con librerie scritte in C su piattaforme Windows o Linux a 32/64 bit, un disallineamento tra convenzione STDCALL e CDECL corrompe il registro dello stack pointer (ESP/RSP) provocando crash istantaneo.
Messaggio originale
Runtime crash: CALL convention mismatch (STDCALL vs CDECL stack corruption)Contesto e parole chiave
Alias
- CALL convention mismatch STDCALL CDECL COBOL
Messaggi alternativi
- disallineamento convenzione di chiamata tra COBOL e libreria nativa C
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-convention-stdcall-cdecl-mismatch
- errore-cobol-call-convention-stdcall-cdecl
- file-status
- gnucobol
Cause possibili
Causa tecnica per Errore COBOL: Calling convention mismatch (Disallineamento Stack STDCALL/CDECL)
Interfacciando COBOL con librerie scritte in C su piattaforme Windows o Linux a 32/64 bit, un disallineamento tra convenzione STDCALL e CDECL corrompe il registro dello stack pointer (ESP/RSP) provocando crash istantaneo.
molto comuneDiagnosi
Diagnostica di esecuzione e file status per Errore COBOL: Calling convention mismatch (Disallineamento Stack STDCALL/CDECL)
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: Calling convention mismatch (Disallineamento Stack STDCALL/CDECL)
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: Calling convention mismatch (Disallineamento Stack STDCALL/CDECL) in COBOL?
Interfacciando COBOL con librerie scritte in C su piattaforme Windows o Linux a 32/64 bit, un disallineamento tra convenzione STDCALL e CDECL corrompe il registro dello stack pointer (ESP/RSP) provocando crash istantaneo.
Approfondimenti
- GnuCOBOL Manual / IBM Enterprise COBOL Documentation documentazione_ufficiale