0

我正在尝试学习 IBM RPG 并为我的雇主重写一个程序。我需要一种方法来查看我的变量是否也被分配给我期望它们的值,但我不知道如何将某些内容输出到我的屏幕以仅显示值。有没有办法在 RPG 程序而不是 CL 程序中发送包含变量的中断消息?谢谢

4

4 回答 4

3

有几个调试器可供您使用,它们不仅可以显示变量的内容,还可以更改它们。我更喜欢使用RDi作为我的编辑环境,附带的图形调试器非常棒。

有几个绿屏调试器,记录Midrange wiki 上。IBM i 命令 STRDBG 用于 ILE 程序(如果使用 OPTION(*SRCDBG) 编译,则使用 OPM),而 STRISDB 命令通常用于较旧的 OPM 程序。

于 2014-09-19T16:11:09.013 回答
2

使用显示 (DSPLY) 操作码
http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzasd/sc092508935.htm%23zzdsply

dsply 'Hello World';
dsply 'value is:' + %char(myNumber);
dsply myString;

//the above don't pause, you'll see the message pop up and go away,  
// but it will be in the joblog.  If you want to wait:
dsply myString '*EXT' myResponse;
于 2014-09-19T15:25:06.223 回答
2

调试器的建议是最好的。我在 RPG400(ILE 前)工作。为此,我可以列出我使用的步骤。如果您不玩 ILE 或 RPG4,希望这可能会有所帮助。我有一个 RPG 程序,ABRKR 被 ABROADC(CL)调用。我要调试 ABRKR,而不是通过 CL,我知道这行得通。免责声明:绿屏编程即将到来。

  • 在命令行上,键入 STRISDB 并按 F4

在此处输入图像描述

  • 输入程序的名称,库......(yatta yatta)

    在此处输入图像描述

  • 按 ENTER 完成它....我打电话给 ABROADC。注意调用程序

在此处输入图像描述

  • 按 ENTER 开始滚球

在此处输入图像描述

  • 进入程序后,按 F5 开始单步执行程序

    在此处输入图像描述

  • 您可以按 F5 一次通过您的代码 1 行

  • 要检查变量值,请将光标放在变量上并按 F11

在此处输入图像描述

在此处输入图像描述

  • 按 ENTER 或 F12 退出详细信息屏幕。

    • 按 F3 退出调试器...或...

    • 将光标定位到您想要的任何行,按 F13(shift F1)跳转到该行代码。如果您找到了您想要的并希望程序运行到结束,只需跳转到您打开它的 *INLR 或 LR 指示器并按 ENTER。作业将运行完成。

我向所有讨厌固定格式和旧技术的人道歉。我正在努力回答这个问题。

于 2017-03-30T22:05:57.617 回答
1

查尔斯几乎明白了。

使用 dsply 只需在 de 值后添加一个空格,就会弹出消息并一直停留在那里,直到您按 Enter 键!

dsply 'Hello World' ' ';
dsply 'value is:' + %char(myNumber) ' ';
dsply myString ' ';
于 2014-11-21T21:57:41.777 回答