Cobol程序A通过B中的入口点调用程序B并崩溃

时间:2019-07-02 21:46:40

标签: linkage gnucobol

COBOL程序B有3个入口点。链接部分包含1个常规区域,然后是3个区域(将其称为link-sect-a,link-sect-b和link-sect-c) Cobol程序A使用条目3调用程序B。在z / OS中,编写代码是完全有效的(并且是正常的)

CALL PROGB-ENTRY3 using common area, link-sect-c

问题似乎出在GnuCobol上,两者都编译后,在入口点3之后,程序B中的任何内容都变得如此简单

DISPLAY 'First 50 bytes in link-sect-c 'link-sect-c(1:50)

导致对link-sect-c的引用崩溃

如果相反,我将更改程序A中的调用(以及程序中的条目3  B包含所有4个参数)

CALL PROGB-ENTRY3 using common area, link-sect-a, link-sect-b, link-sect-c

(即使我不需要link-sect-a或link-sect-b) 代码有效

如果需要,我可以包括2个示例程序,因为它们确实很简单

1 个答案:

答案 0 :(得分:0)

我在程序B的编译中添加了 -fsticky-linkage 选项,从而解决了该问题。 (很容易确认。删除该选项并再次编译;重新引入问题)