有什么方法可以从带有错误消息的线轴中给出的偏移量(如)中找到导致异常结束(如 SO4C)的确切行号offset +00007D0A at address 1515CD0A
。?
问问题
2041 次
1 回答
10
如果您的程序使用选项 OFFSET、NOLIST 编译,您将在输出列表中获得动词/行号列表,其中包含从程序开始的“偏移量”。列表中具有最接近偏移量但小于或等于异常结束中报告的“偏移量”的行号是您要查看的位置。
如果您使用 NOOFFSET,LIST,您将在编译列表中获得“生成的汇编程序”,并且您的异常终止“偏移量”应该与生成的指令之一的“偏移量”完全匹配,并且您应该能够轻松识别COBOL 源代码行,它是列出实际机器指令之前的第一个带有行号的动词。
请记住,在您设法覆盖程序代码并最终导致异常终止的极少数情况下,您将不得不更加努力地工作,但对于“普通”异常终止,这非常简单。
如果您使用编译器选项 NOLIST、NOOFFSET,那么您将一无所知。使用其中一个选项集重新运行编译。除非程序大小相同,否则同样再次运行异常终止作业。
如果您使用 LIST,OFFSET,编译器将生成一条诊断消息,您必须选择其中一个有效选项。LIST 和 OFFSET 是互斥的。
于 2013-06-14T06:36:48.220 回答