2

有什么方法可以从带有错误消息的线轴中给出的偏移量(如)中找到导致异常结束(如 SO4C)的确切行号offset +00007D0A at address 1515CD0A。?

4

1 回答 1

10

如果您的程序使用选项 OFFSET、NOLIST 编译,您将在输出列表中获得动词/行号列表,其中包含从程序开始的“偏移量”。列表中具有最接近偏移量但小于或等于异常结束中报告的“偏移量”的行号是您要查看的位置。

如果您使用 NOOFFSET,LIST,您将在编译列表中获得“生成的汇编程序”,并且您的异常终止“偏移量”应该与生成的指令之一的“偏移量”完全匹配,并且您应该能够轻松识别COBOL 源代码行,它是列出实际机器指令之前的第一个带有行号的动词。

请记住,在您设法覆盖程序代码并最终导致异常终止的极少数情况下,您将不得不更加努力地工作,但对于“普通”异常终止,这非常简单。

如果您使用编译器选项 NOLIST、NOOFFSET,那么您将一无所知。使用其中一个选项集重新运行编译。除非程序大小相同,否则同样再次运行异常终止作业。

如果您使用 LIST,OFFSET,编译器将生成一条诊断消息,您必须选择其中一个有效选项。LIST 和 OFFSET 是互斥的。

于 2013-06-14T06:36:48.220 回答